NodeJS 用のセレン テスト スイートを作成しています。サンプル テスト ファイルの 1 つを次に示します。
var Sails = require('sails');
// create a variable to hold the instantiated sails server
var app;
var client;
// Global before hook
before(function(done) {
// Lift Sails and start the server
Sails.lift({
log: {
level: 'error'
},
environment: 'test',
port: 1338
}, function(err, sails) {
app = sails;
done(err, sails);
});
});
// Global after hook
after(function(done) {
app.lower(done);
});
beforeEach(function(done) {
client = require('webdriverjs').remote({desiredCapabilities:{browserName:'chrome'}});
client.init(done);
});
afterEach(function(done) {
client.end(done);
});
describe("Go to home page", function() {
it('should work', function(done) {
client
.url('http://localhost:1338/')
.pause(5000)
.call(done);
});
});
現在:
- 各テスト ファイルを開始すると、Sails サーバーが起動します。
- 各テスト ファイルが終了すると、Sails サーバーがシャットダウンされます。
- 各テストを開始すると、ブラウザが起動します
- 各テストを終了すると、ブラウザが閉じます
したがって、10 個のセレン テスト ファイルがある場合、Sails サーバーを 10 回起動/シャットダウンします。Sails サーバーを 1 回だけ起動し、すべてのテスト ファイルを実行してからシャットダウンする方法はありますか?
Sails + Mocha + webdriverjs スタックを使用しています。これが私のMakefile構成です
test:
@./node_modules/.bin/mocha -u bdd -R spec --recursive --timeout 15000
.PHONY: test