我正在为 NodeJS 编写 selenium 测试套件。这是一个示例测试文件:
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 个 selenium 测试文件,它将启动/关闭 Sails 服务器 10 次。有没有办法只启动 Sails 服务器一次,运行所有测试文件,然后将其关闭?
我正在使用 Sails + Mocha + webdriverjs 堆栈。这是我的 Makefile 配置
test:
@./node_modules/.bin/mocha -u bdd -R spec --recursive --timeout 15000
.PHONY: test