我正在使用Gulp。我有deploy
任务在test
任务之后运行。问题是即使测试失败,deploy
任务也会运行。有没有办法只在测试成功时运行deploy
任务?
gulp.task('test', function() {
return gulp.src('some_test_tile')
.pipe(karma({
configFile: 'karma.conf.js',
action: 'run'
}));
});
gulp.task('deploy', ['test'], function() {
return gulp.src(paths.scripts)
.pipe(gulp.dest(paths.dest));
});
我正在使用gulp-karma
来运行Karma测试。
答案 0 :(得分:2)
在依赖项完成之前,您的任务是否正在运行?确保您的依赖项任务正确使用异步运行提示。
如果fn
执行以下操作之一,则可以使任务异步:
var gulp = require('gulp');
// takes in a callback so the engine knows when it'll be done
gulp.task('one', function (cb) {
// do stuff -- async or otherwise
cb(err); // if err is not null and not undefined, the run will stop, and note that it failed
});
// identifies a dependent task must be complete before this one begins
gulp.task('two', ['one'], function () {
// task 'one' is done now
});
gulp.task('default', ['one', 'two']);
答案 1 :(得分:1)
gulp-karma example表示在管道到业力之后添加.on('error',...),并手动抛出错误以确保gulp在任何测试失败时退出非零。应该这样做。