使用Protractor驱动程序在CodeceptJS上运行测试时,测试成功运行,但是该过程没有退出,因此我必须每次都强制停止它,而且我也无法在CI服务器上运行它们,否则它将始终超时。
我的Scoped
:
Scope
我的container.RegisterInitializer<MyControllerType>(c => Lifestyle.Scope.RegisterForDisposal(container, c));
:
codecept.conf.js
基本上是为网站服务的const conf = require('../config/config');
exports.config = {
tests: './e2e/**/*.spec.js',
output: './e2e/reports',
helpers: {
Protractor: protractor.config,
ProtractorHelper: {
require: './e2e/protractor.helper.js'
}
},
name: 'test',
timeout: 10000,
bootstrap: './e2e/before-launch.js',
mocha: {
reporterOptions: {
reportDir: './reports'
}
}
};
:
protractor.conf.js
我正在使用:
答案 0 :(得分:0)
您可以创建一个gulp任务
使用口香糖量角器
var protractor = require("gulp-protractor").protractor;
var spawn = require('child_process').spawn;
function runProtractorConfig() {
gulp.src('./**/*-page.spec.js')
.pipe(protractor({
configFile: 'protractor.config.js'
}))
.on('error', function (e) {
throw e;
});
}
现在,您的过程将自动退出。
答案 1 :(得分:0)
事实证明,由于connect
为网站提供了服务,并在最后一直在监听,因此它没有退出,所以我将codecept配置更改为:
bootstrap: 'run-server.js',
teardown: 'run-server.js',
和run-server.js
中的
const http = require('http');
const connect = require('connect');
let app = connect();
app.use(require('serve-static')('public'));
let server = null;
module.exports = {
bootstrap: function(done) {
server = http.createServer(app);
server.listen(3001);
done();
},
teardown: function(done) {
server.close();
done();
}
}
现在退出就可以了