与量角器一起运行的codeceptjs不会退出

时间:2018-07-30 13:20:37

标签: protractor codeceptjs

使用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

我正在使用:

  • CodeceptJS版本:1.4.1
  • NodeJS版本:10.1.0
  • 量角器版本:5.4.0

2 个答案:

答案 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();
  }
}

现在退出就可以了