Karma singleRun不会自动退出

时间:2016-02-04 14:30:08

标签: gulp karma-runner karma-jasmine

我的业力测试运行器在测试完成后不会自动退出,即使我的配置已将singleRun设置为true并且我不会自动观看文件,这应该会使测试运行运行一次,然后根据docs退出。

module.exports = function(config) {
    config.set({
        basePath: '',
        browsers: ['PhantomJS'],
        frameworks: ['browserify', 'jasmine'],
        files: [
            { pattern: 'test/*.js', watched: false }
        ],
        preprocessors: {
            'static/js/src/*.js': ['browserify'],
            'test/*.js': ['browserify']
        },
        browserify: {
            debug: true,
            transform: [["babelify", { "presets": ["es2015"] }]]
        },
        colors: true,
        reporters: ['progress'],
        singleRun: true,
        autoWatch: false
    });
};

通过我的gulp test命令运行时:

gulp.task('test', function(done) {
    new Karma({
        configFile: __dirname + '/karma.conf.js',
        singleRun: true
    }, done).start();
});

测试完成:

[09:18:38] Using gulpfile ~/static-projects/tic-tac-toe-es6/gulpfile.js
[09:18:38] Starting 'test'...
04 02 2016 09:18:40.502:INFO [framework.browserify]: bundle built
04 02 2016 09:18:40.509:INFO [karma]: Karma v0.13.19 server started at http://localhost:9876/
04 02 2016 09:18:40.523:INFO [launcher]: Starting browser PhantomJS
04 02 2016 09:18:41.157:INFO [PhantomJS 1.9.8 (Linux 0.0.0)]: Connected on socket /#xIZCPzrCyB2xljZ7AAAA with id 64233425
PhantomJS 1.9.8 (Linux 0.0.0): Executed 9 of 9 SUCCESS (0.042 secs / 0.003 secs)
[09:18:41] Finished 'test' after 3.1 s

但是,我必须通过Ctrl + c手动退出测试运行器。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我遇到同样的问题。有各种各样的线程可以解决这个问题,并为此提出了各种修复:

https://github.com/karma-runner/gulp-karma/issues/3

https://github.com/karma-runner/karma/issues/1035

然而,据我所知,这仍然是一个问题(或者它可能会重新出现?)。我发现从grunt成功执行业力的唯一方法是产生一个子进程来启动业力。

var spawn = require('child_process').spawn;

gulp.task('test', function(done) {
  spawn('karma',  ['start', __dirname + '/karma.conf.js'], { stdio : 'inherit' });
});