我正在使用gulp-mocha
和gulp-istanbul
管道上传到istanbul进行覆盖收集。
我使用done(error)
来表示mocha测试用例中的测试失败。
当所有测试通过后,istanbul会运行覆盖率收集并生成报告。 当任何测试失败时,instanbul无法执行。
gulp.task('cov', ['pre-cov'], function () {
return gulp
.src(['test/service/*.js'])
.pipe(mocha({reporter: 'JSON'})
.once('error', () => {
this.emit('end');
})
.once('end', () => {
this.emit('end');
}))
.pipe(istanbul.writeReports({
dir: 'tmp/unit-test-coverage',
reporters: [ 'lcov','text','text-summary'],
reportOpts: { dir: 'tmp/unit-test-coverage'}
}))
.pipe(istanbul.enforceThresholds({
thresholds: { global: 10 }
}))
.on('end', () => {console.log("EXIT");process.exit(1);});
});
然而,当mocha测试失败/错误时,我发出end
事件吞咽。但即使这样也无法在gulp执行on(end)
回调。
似乎,我在这里遗漏了一些东西,这将允许我继续前进到下一阶段,我无法用mocha或istanbul docs来解决这个问题。
- 提前感谢您的帮助。