Unit testing 单元测试中断时如何退出gulp?

Unit testing 单元测试中断时如何退出gulp?,unit-testing,gulp,gulp-mocha,Unit Testing,Gulp,Gulp Mocha,我使用gulp和mocha运行单元测试,这是gulp工作流的一部分,用于运行我的reactjs应用程序。单元测试工作: gulp.task('mocha', function () { return gulp .src(['test/*.js']) .pipe(mocha({ compilers: { js: babel } }) }) 但是,如果单元测试失

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

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

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

但是,如果单元测试失败,我希望退出整个gulp工作流。我如何才能做到这一点?

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

Mocha运行测试。Gulp只需将文件、文件夹位置和管道分组,并使用此分组信息调用mocha。如果我没看错你的问题的话,你想要的是一种机制,让摩卡能够将测试结果反馈给我,而不是它的标准。当mocha退出时,gulp自动退出,但如果没有退出,则您有一个监视任务,或者gulp文件中有一个allback尚未解决,或者此问题-[

你可以用

.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))
});