当单元测试坏了时如何退出gulp?

时间:2017-01-17 00:31:20

标签: unit-testing gulp gulp-mocha

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

Mocha运行测试。 Gulp只使用此分组信息对文件,文件夹位置和管道调用mocha进行分组。你要求的是一个机制,如果我正确地读出你的问题,摩卡可以回传测试结果而不是stdout。当mocha退出时gulp会自动退出,但如果没有,那么你有一个监视任务,或者你的gulp文件中有一个尚未解决的allback或者这个问题 - [https://github.com/sindresorhus/gulp-mocha/issues/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))
});