【问题标题】:how to write to file when using gulp and mocha?使用 gulp 和 mocha 时如何写入文件?
【发布时间】:2016-04-25 01:00:02
【问题描述】:

我有一个使用 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);
});

【问题讨论】:

    标签: node.js npm gulp mocha.js gulp-mocha


    【解决方案1】:

    你不能直接把它传给gulp.dest吗?

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案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);
        });
        

        【讨论】:

        • 这也会将 console.log 打印写入 JSON 文件,这会导致无用。你有解决方法吗?谢谢!
        • @GalMargalit 不幸的是,不,这是将输出映射到文件的简单解决方法。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多