2016-01-19 15 views
6

Mocha json muhabirini kullanan örnek bir gulp görevim var. Bu json çıktısını bir dosyaya yazmak istiyorum. Bazı girişleri takdir ediyorum.gulp ve mocha kullanırken nasıl dosyaya yazılır?

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); 
}); 

cevap

3

Ben kaynak koduna bakarak çalışmak yaptık:

İşte benim kodudur. gulp-mocha'un dış kaynaklara itmek için gulp boru hattını takip etmediği anlaşılıyor. process.stdout.write'u kullanarak, görevin yürütülmesi sırasında sonucu geçici olarak eşleştirebilirsiniz.

İşte basit bir örnek.

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); 
}); 
+0

Bu aynı zamanda yararsız hale JSON dosyasına console.log baskılar, yazar .. Eğer bir geçici çözüm var mı? Teşekkürler! –

+1

@GalMargalit Ne yazık ki, bu çıktıyı bir dosyaya eşlemek için basit bir çözümdür. – Theodore

+0

:) Teşekkürler temiz –

2

kullanın mochawesome muhabir JSON çıktı ve alırsınız çok daha: https://www.npmjs.com/package/mochawesome

bu muhabir kullanmanın bir diğer avantajı vb console.log iletilere JSON yazma akışı kırmak alışkanlık olduğunu

gulp.dest için.

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

mochawesome screenshot

1

Can değil sadece boru bunu?

.pipe(gulp.dest('./somewhere')); 
İlgili konular