2016-01-19 14 views
6

Mam przykładowe zadanie łyka, który używa reportera Mocha json. Chciałbym zapisać ten plik wyjściowy json. Doceniam niektóre dane wejściowe.jak napisać do pliku podczas używania łyka i mokki?

Oto mój kod:

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

Odpowiedz

3

Zrobiłem to działa patrząc na kodzie źródłowym. Wygląda na to, że gulp-mocha nie podąża za potokiem, aby przeforsować outsourcing. Możesz użyć process.stdout.write chociaż tymczasowego odwzorowania wyniku podczas wykonywania zadania.

Oto prosty przykład.

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

pisze to również wydruki console.log w pliku JSON, które czynią bezużyteczny .. Czy masz obejście? Dzięki! –

+1

@GalMargalit Niestety nie, jest to proste obejście do mapowania danych wyjściowych do pliku. – Theodore

+0

:) dzięki to jest schludny –

2

Zastosowanie mochawesome reporter, dostaniesz wyjście JSON i wiele więcej: https://www.npmjs.com/package/mochawesome

Kolejną zaletą korzystania z tego reportera jest to, że nie złamie strumień zapisu JSON na console.log wiadomości itp .

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

mochawesome screenshot

1

nie można po prostu rura go gulp.dest?

.pipe(gulp.dest('./somewhere')); 
Powiązane problemy