2016-01-19 3 views
6

मेरे पास एक नमूना गल्प कार्य है जो मोचा जेसन रिपोर्टर का उपयोग करता है। मैं उस फाइल को जेसन आउटपुट लिखना चाहता हूं। कुछ इनपुट की सराहना करेंगे।गल्प और मोचा का उपयोग करते समय फ़ाइल को कैसे लिखना है?

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

उत्तर

3

मैं इसे स्रोत कोड देख काम बना दिया है:

यहाँ मेरी कोड है। ऐसा लगता है कि gulp-mocha इसके आउटसोर्स को धक्का देने के लिए गल्प पाइपलाइन का पालन नहीं करता है। आप कार्य के निष्पादन के दौरान परिणाम अस्थायी मानचित्रण के बावजूद 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); 
}); 
+0

यह भी JSON फ़ाइल को console.log प्रिंट, जो बेकार प्रस्तुत करना लिखते हैं .. आप एक समाधान है? धन्यवाद! –

+1

@ गलमार्गलिट दुर्भाग्य से नहीं, यह फ़ाइल में आउटपुट को मैप करने के लिए एक आसान कामकाज है। – Theodore

+0

:) धन्यवाद यह साफ है –

2

उपयोग mochawesome संवाददाता, आप JSON उत्पादन और मिल जाएगा और अधिक: https://www.npmjs.com/package/mochawesome

इस संवाददाता का उपयोग करने का एक और लाभ यह है कि आप console.log संदेशों आदि पर अपने JSON लेखन धारा को तोड़ने नहीं होगा ।

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

mochawesome screenshot

1

नहीं तुम सिर्फ gulp.dest को यह पाइप कर सकते हैं?

.pipe(gulp.dest('./somewhere')); 
संबंधित मुद्दे