Gulp通知不成功的黄瓜步骤

时间:2017-10-09 15:14:58

标签: gulp cucumberjs gulp-notify

我正在使用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 个答案:

答案 0 :(得分: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']);