Yoji SHIDARA
null+****@clear*****
Thu Aug 30 16:45:50 JST 2012
Yoji SHIDARA 2012-08-30 16:45:50 +0900 (Thu, 30 Aug 2012) New Revision: 3edb7fb5587382ffd97e9d6616572236783151f2 https://github.com/groonga/gcs/commit/3edb7fb5587382ffd97e9d6616572236783151f2 Log: Add test runner for CasperJS Added files: test_casper/casper-runner.js test_casper/test/dashboard.js Modified files: package.json test/test-utils.js Modified: package.json (+1 -0) =================================================================== --- package.json 2012-08-29 12:55:29 +0900 (b601f9a) +++ package.json 2012-08-30 16:45:50 +0900 (c6724cc) @@ -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": { Modified: test/test-utils.js (+7 -0) =================================================================== --- test/test-utils.js 2012-08-29 12:55:29 +0900 (bb7b63d) +++ test/test-utils.js 2012-08-30 16:45:50 +0900 (8f2669e) @@ -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'); @@ -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; Added: test_casper/casper-runner.js (+36 -0) 100755 =================================================================== --- /dev/null +++ test_casper/casper-runner.js 2012-08-30 16:45:50 +0900 (ed93524) @@ -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); +}); Added: test_casper/test/dashboard.js (+10 -0) 100644 =================================================================== --- /dev/null +++ test_casper/test/dashboard.js 2012-08-30 16:45:50 +0900 (45a01ed) @@ -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); +}); -------------- next part -------------- HTML����������������������������...Download