2017-10-09 5 views
1

J'utilise gulp-notify pour obtenir une notification de passage et échouer étapes de concombre. Le fait est que je reçois seulement des notifications quand il échoue, pas quand les tests passent.Gulp notifier ne fonctionne pas sur les étapes de concombre réussie

Aucune erreur n'est levée, mais le terminal affiche des tests réussis, et je ne reçois aucune notification.

Voici le contenu de mes Gulpfile.js:

var gulp = require('gulp'); 
var cucumber = require('gulp-cucumber'); 
var notify = require('gulp-notify'); 

gulp.task('cucumber', function() { 
    gulp.src('*features/*') 
     .pipe(cucumber({ 
      'steps': '*features/step_definitions/*.js', 
      'support': '*features/support/*.js' 
     })) 
     .on('error', notify.onError({ 
      title: 'Red', 
      message: 'Your test(s) failed' 
     })) 
     .pipe(notify({ 
      title: 'Green', 
      message: 'All tests passed (you can refactor)' 
     })); 

}); 

gulp.task('watch', function() { 
    gulp.watch(['features/**/*.feature', 'features/**/*.js', 'script/**/*.js'], ['cucumber']); 
}); 

gulp.task('default', ['watch']); 

Toutes les idées que je pourrais être manquant?

Répondre

1

Je l'ai travaille en appelant directement cucumberjs, comme ceci:

const gulp = require('gulp'); 
const notifier = require('node-notifier'); 
const path = require('path'); 

gulp.task('cucumber', function() { 
    const { exec } = require('child_process'); 
    exec('clear && node_modules/.bin/cucumber-js', (error, stdout, stderr) => { 
     if (error) { 
      notifier.notify({ 
      title: 'Red', 
      message: 'Your test(s) failed', 
      icon: path.join(__dirname, 'failed.png') 
      }); 
     } else { 
      notifier.notify({ 
      title: 'Green', 
      message: 'All tests passed (you can refactor)', 
      icon: path.join(__dirname, 'passed.png') 
      }); 
     } 

     console.log(stdout); 
     console.log(stderr); 
    }); 
}); 

gulp.task('watch', function() { 
    gulp.watch(['features/**/*.js', 'script/**/*.js'], ['cucumber']); 
}); 

gulp.task('default', ['cucumber', 'watch']);