2016-01-16 1 views
4

J'utilise gulp-mocha avec gulp et j'essaye d'obtenir une notification quand les tests de moka seront complétés.Récupère l'événement moka "end" de gulp

Ceci est mon 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']); 

j'ai réussi à voir la notification de l'événement « d'erreur », mais je ne pouvais pas trouver un moyen d'obtenir l'événement « fin ».

Une idée sur la façon de l'obtenir?

+0

Je vais avoir un problème similaire ... Avez-vous trouvé jamais une solution? –

+0

Nope @AdrianE, malheureusement je n'ai pas –

Répondre

2

gulp-notify fonctionne avec des flux (c'est-à-dire pipe(notify ...), utilisez node-notifier.

que je fais comme ceci:

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')) 
    ; 
});