这个gulp任务完成后没有退出,我必须手动按 Ctrl-C 退出。
gulp.task('test', function(done) {
var testem = require('testem');
var testemOptions = {
file: 'testem.json'
};
var t = new testem();
t.startCI(testemOptions, done);
});
如何让这个任务正常退出?
注意:实际上它会自行退出,但完成后大约需要 15 秒。
输出:
[15:49:59] Using gulpfile ~/gulpfile.js
[15:49:59] Starting 'test'...
ok 1 PhantomJS 1.9 - Integration Tests: Home Index Page
1..3
# tests 3
# pass 3
# fail 0
# ok
[15:50:00] Finished 'test' after 1.33 s
最佳答案
设法使用Chromium启动器
重现您的问题,但它应该与PhantomJS
相同。在任务
结束和进程
实际退出之间确实存在15秒
CPU
延迟。
> time gulp testem
Starting 'testem'...
ok 1 Chrome 32.0 - sass: link
ok 2 Chrome 32.0 - Unit - HomeRoute: exists
ok 3 Chrome 32.0 - Unit - HomeRoute: #model
ok 4 Chrome 32.0 - Unit - HomeRoute: redirect
1..4
# tests 4
# pass 4
# fail 0
# ok
Finished 'testem' after 938 ms
gulp testem 1.27s user 0.25s system 9% cpu 16.581 total
通过删除您在任务上设置的 done 回调
并将其传递给不将此作为参数的 startCI
,
var testem = require('testem');
gulp.task('test', function () {
var testemOptions = {
file: 'testem.json'
};
var t = new testem();
return t.startCI(testemOptions);
});
任务按预期运行并在完成后正确退出:
> time gulp testem
Starting 'testem'...
ok 1 Chrome 32.0 - sass: link
ok 2 Chrome 32.0 - Unit - HomeRoute: exists
ok 3 Chrome 32.0 - Unit - HomeRoute: #model
ok 4 Chrome 32.0 - Unit - HomeRoute: redirect
1..4
# tests 4
# pass 4
# fail 0
# ok
gulp testem 1.26s user 0.19s system 91% cpu 1.582 total
顺便说一句,不知道你可以做到这一点,只需将带有 file
属性的对象传递给 startCI
,我认为你应该使用读取配置文件fs.readFile
并将其数据解析为 JSON
,以使用您在 testem.json
中提供的配置参数启动 testem
.
还有一件事,有一个 gulp 插件, gulp-testem 我没有机会尝试,但这可能会有所帮助。
关于javascript - Testem gulp 任务完成后挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25019955/