0

我正在使用 gulp 和 mocha 运行单元测试,这是运行我的 reactjs 应用程序的 gulp 工作流程的一部分。单元测试有效:

gulp.task('mocha', function () {
    return gulp
        .src(['test/*.js'])

        .pipe(mocha({
            compilers: {
                js: babel
            }
        })
})

但是,如果单元测试被破坏,我想退出整个 gulp 工作流程。我怎样才能做到这一点?

4

2 回答 2

0

您可以尝试杀死该进程并在需要时重新启动它?Prehaps我不完全理解你的问题,如果是这样,请详细说明。在运行 gulpscript 的 cmd 中,您可以按 CTRL + C,然后按 Y 确认。这将停止当前脚本。

于 2017-01-17T19:05:38.867 回答
0

Mocha 运行测试。Gulp 只是对文件、文件夹位置进行分组,并使用这些分组信息管道调用 mocha。如果我正确阅读了您的问题,您所要求的是一种机制,让 mocha 能够回传以吞咽测试结果而不是其标准输出。当 mocha 退出时 gulp 会自动退出,但如果没有,那么您有一个监视任务,或者您的 gulp 文件中有一个尚未解决的 allback 或此问题 - [ https://github.com/sindresorhus/gulp-mocha /问题/1][1]

您可以使用

.on('error', process.exit.bind(process, 1))

检查进程是否退出

或者,如果是回调问题,请使用 done() 解决调用

gulp.task('taskname', function (done) {
    gulp.src('test/testfile.js')
        .pipe(gulpmocha(),setTimeout(function() {
            done(null);
    }, 5000))
    .on('error', process.exit.bind(process, 1))
});
于 2017-09-30T07:57:39.323 回答