Как выйти из глотка, когда юнит тест не пройден?
Я использую 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))
});