如何使用gulp和mocha写入文件?

我有一个使用Mocha json记者的抽样任务。 我想写的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); }); 

我已经使它看起来在源代码。 似乎吞噬摩卡没有按照吞吐pipe道来推动它的外包。 您可以使用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); }); 

使用mochawesome记者,你会得到JSON输出等等: https ://www.npmjs.com/package/mochawesome

使用这个记者的另一个好处是,你不会在console.log消息中打破你的JSON写入stream。

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

mochawesome screenshot

你不能把它给gulp.dest吗?

 .pipe(gulp.dest('./somewhere'));