节点,使用流的grunt自定义任务

时间:2014-03-07 19:12:25

标签: node.js gruntjs task

你们可以帮助我完成自定义的grunt任务吗?

我基本上使用child_process来调用

var cp = exec(cmd, {}, function (err, stdout, stderr) {}

这当然有stdout等。如果我

cp.stdout.pipe(process.stdout);

它为控制台提供了许多权利。我在循环中进行此调用,所以这是一个骨架

this.files.forEach(function(f) {
      var src = f.src.map(function(filepath) {
      var cmd = util.format("%s %s", options.xUnit, src);
      var cp = exec(cmd, {}, function (err, stdout, stderr) {
      ....
      cb();
 });
 if (options.stdout || grunt.option('verbose')) {
     cp.stdout.pipe(process.stdout);
 }

一切正常。但由于我这样做了几次,我至少想要能够索引stderr有多少次值。我基本上都在运行测试集合。如果全部通过,那么stderr是空白的,如果没有,我不想停止我希望它们全部运行的其余测试,但我想最后输出“你有3个集合,它们有失败的测试”。我不明白为什么我似乎无法让它工作。如果我宣布

var output = 0;

然后

if (options.stderr || grunt.option('verbose')) {
     cp.stdout.pipe(process.stdout);
     output ++;
}

然后我尝试在它们全部运行后打印到控制台,但它总是为0。

我真的想知道如何获取所有输出的副本并从每个测试会话中解析出最后一行,其中包含失败的测试数。但这似乎超出了可能性的范畴。我已经尝试了各种各样的东西与溪流,并没有什么。

无论如何,如果有人可以提供帮助,我会非常感激

0 个答案:

没有答案