将stdout彩色输出传递给grunt输出

时间:2012-12-27 21:00:53

标签: javascript node.js gruntjs

我正在尝试创建一个运行mocha测试的grunt自定义任务但是我无法弄清楚如何让mrunt从mocha中获取彩色输出并像直接运行mocha命令时那样显示它。即:咕噜声剥掉颜色或不通过它们。这是艰巨的任务:

var exec = require("child_process").exec;
grunt.registerTask('mocha', 'Run unit (Mocha) tests.', function () {
    var done = this.async();
    var cmd = "mocha -R Spec tests/mocha/*.js";
    exec(cmd, function (error, stdout, stderr) {
        if (stdout) {
            grunt.verbose.or.write(stdout);
            done();
        }
    });
});

我意识到有一个我可以使用的grunt-mocha插件(并且已经使用过),但我正在尝试消除依赖关系,并且还会对此任务进行一些自定义。

谢谢!

1 个答案:

答案 0 :(得分:6)

这主要是this question的副本。

您需要添加--colors以强制Mocha输出ANSI颜色代码,否则它会自动禁用颜色,因为它不会输出到实际的终端。

var cmd = "mocha --colors -R Spec tests/mocha/*.js";