Как выйти из глотка, когда модульный тест сломан?

Я использую gulp и mocha для запуска модульных тестов, которые являются частью рабочего процесса gulp для запуска моего приложения reactjs. Юнит-тестовые работы:

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

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

Однако если модульный тест сломан, я хотел бы выйти из всего рабочего процесса gulp. Как я могу это сделать?

2 ответа

  1. Вы можете попытаться просто убить процесс и перезапустить его, когда вы хотите? Prehaps я не полностью понимаю ваш вопрос, если так пожалуйста ellaborate.
    В cmd, где вы запускаете gulpscript, вы можете нажать CTRL + C и than Y, чтобы подтвердить. Это останавливает текущий сценарий.

  2. Mocha выполняет тесты. Gulp просто группирует файлы, местоположения папок и труба вызывает mocha с этой сгруппированной информацией. То, что вы просите, — это механизм для mocha, чтобы общаться обратно, чтобы глотать результаты теста вместо его stdout, если я правильно прочитал Ваш вопрос. gulp автоматически завершает работу, когда mocha завершает работу, но если это не так, то у вас есть задача watch или есть allback в вашем файле gulp, который не был решен, или эта проблема — [ https://github.com/sindresorhus/gulp-mocha/issues/1%5D%5B1%5D

    Вы можете использовать

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