Navigation Menu

Skip to content

Commit

Permalink
Add test runner for CasperJS
Browse files Browse the repository at this point in the history
  • Loading branch information
darashi committed Aug 30, 2012
1 parent 8d44f4d commit 3edb7fb
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 0 deletions.
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -31,6 +31,7 @@
},
"scripts": {
"test": "NODE_ENV=test ./node_modules/.bin/mocha --reporter list --ui tdd",
"test:casper": "./test_casper/casper-runner.js",
"start": "./bin/gcs"
},
"bin": {
Expand Down
7 changes: 7 additions & 0 deletions test/test-utils.js
Expand Up @@ -8,6 +8,7 @@ var nativeNroonga = require('nroonga');
var wrappedNroonga = require(__dirname + '/../lib/wrapped-nroonga');
var xml2js = require('xml2js');
var spawn = require('child_process').spawn;
var url = require('url');

var temporaryDirectory = exports.temporaryDirectory = path.join(__dirname, 'tmp');

Expand All @@ -27,6 +28,12 @@ function setupServer(context, extraOptions) {
});
var server = gcsServer.createServer(options);
server.listen(testPort);

server.dashboardUrl = url.format({
protocol: 'http',
hostname: 'localhost',
port: options.port
});
return server;
}
exports.setupServer = setupServer;
Expand Down
36 changes: 36 additions & 0 deletions test_casper/casper-runner.js
@@ -0,0 +1,36 @@
#!/usr/bin/env node

// In oreder to run this tests, you need CasperJS.
// http://casperjs.org/

var utils = require('../test/test-utils');
var spawn = require('child_process').spawn;

function casper(options, callback) {
var command = spawn('casperjs', options);
var output = '';

command.stdout.on('data', function(data) {
process.stdout.write(data);
});

command.stderr.on('data', function(data) {
process.stderr.write(data);
});

command.on('exit', function(code) {
callback(code);
});
}

var server = utils.setupServer();
var options = [
'test',
__dirname + '/test',
'--dashboard-url=' + server.dashboardUrl
];

casper(options, function(code) {
server.close();
process.exit(code);
});
10 changes: 10 additions & 0 deletions test_casper/test/dashboard.js
@@ -0,0 +1,10 @@
var casper = require('casper').create();
var dashboardUrl = casper.cli.options['dashboard-url'];

casper.start(dashboardUrl, function() {
this.test.assertTitle('Groonga CloudSearch');
});

casper.run(function() {
this.test.renderResults(true);
});

0 comments on commit 3edb7fb

Please sign in to comment.