2017-10-09 3 views
1

gulp-notifyを使用して、キュウリのステップの合格および不合格の通知を取得しています。キュウリのステップが正常に機能していないことを通知する

問題は、テストが合格していないときにのみ、通知が失敗することです。

エラーはスローされませんが、端末はテストに合格していますが、通知はありません。ここで

私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']); 

私が失われる可能性がどのような任意のアイデア?

答えて

1

私は、それはこのように、直接cucumberjsを呼び出して作業しました:

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']); 
関連する問題