Как выйти из глотка, когда юнит тест не пройден?

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

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

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

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

2 ответа

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

Мокко проводит испытания. Gulp просто группирует файлы, расположения папок, а pipe вызывает mocha с этой сгруппированной информацией. То, о чем вы просите, - это механизм, с помощью которого мокко может сообщать результаты теста вместо его стандартного вывода, если я правильно прочитал ваш вопрос. gulp автоматически завершает работу при выходе из mocha, но если этого не происходит, то либо у вас есть задача наблюдения, либо в файле gulp есть обратная связь, которая не была решена, или эта проблема - [ 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))
});
Другие вопросы по тегам