我正在使用gulp-mocha和gulp,我正试图在mocha测试完成时收到通知。
这是我的gulpfile.js
var gulp = require('gulp');
var mocha = require('gulp-mocha');
var notify = require("gulp-notify");
gulp.task('test', function () {
return gulp.src(['test/**/*.js'], { read: false })
.pipe( mocha({ reporter: 'nyan' }))
.on("error", notify.onError({
message: 'Error: <%= error.message %>'
}))
.on('end', function () {
notify( "Tests passed" )
});
});
gulp.task('watch-test', function () {
gulp.watch(['./**'], ['test']);
});
gulp.task( 'default', [ 'test', 'watch-test'] );
我设法看到关于“错误”事件的通知,但我找不到获取“结束”事件的方法。
关于如何获得它的任何想法?
答案 0 :(得分:2)
gulp-notify
适用于流(即pipe(notify
...),使用node-notifier
。
我这样做:
let gulp = require('gulp');
let gulpeach = require('gulp-foreach');
let mocha = require('gulp-mocha');
let notifier = require('node-notifier');
// Run tests.
gulp.task('test', function () {
gulp.src(['test/test-*.js'])
.pipe(gulpeach(function (stream, file) {
return stream
.pipe(mocha())
.on('error', (error) => {
notifier.notify({
message: ('Command: ' + error.cmd),
})
})
;
}))
.on('finish', () => notifier.notify('Tests completed'))
;
});