6

我有一个使用 Mocha json 报告器的示例 gulp 任务。我想将该 json 输出写入文件。将不胜感激一些投入。

这是我的代码:

var gulp = require('gulp');
var mocha = require('gulp-mocha');
var util = require('gulp-util');

gulp.task('myreport', function() {
    return gulp.src(['tests.js'], { read: false })
        .pipe(mocha({ reporter: 'json' }))  //how do I write this to a file?
        .on('error', util.log);
});
4

3 回答 3

3

我已经使它工作在查看源代码。似乎gulp-mocha没有遵循 gulp 管道来推动它的外包。您可以process.stdout.write在任务执行期间使用临时映射结果。

这是一个简单的例子。

  var gulp = require('gulp'),
  mocha = require('gulp-mocha'),
  gutil = require('gulp-util'),
  fs = require('fs');

gulp.task('test', function () {
  //pipe process.stdout.write during the process
  fs.writeFileSync('./test.json', '');
  process.stdout.write = function( chunk ){
    fs.appendFile( './test.json', chunk );
  };

  return gulp.src(['hello/a.js'], { read: false })
      .pipe(mocha({ reporter: 'json' }))
      .on('error', gutil.log);
});
于 2016-01-20T16:46:20.297 回答
2

使用 mochawesome 记者,您将获得 JSON 输出等等: https ://www.npmjs.com/package/mochawesome

使用此报告器的另一个优点是您不会在 console.log 消息等上破坏 JSON 写入流。

.pipe(mocha({reporter: 'mochawesome'}))

mochawesome 截图

于 2016-03-06T13:26:37.190 回答
1

你不能把它用管道传送到gulp.dest吗?

.pipe(gulp.dest('./somewhere')); 
于 2016-03-06T21:57:10.420 回答