我尝试使用与webstorm测试运行摩卡在Win 7。
我有这些配置PARAMS:
路径节点:
C:\Program Files (x86)\nodejs\node.exe
工作目录:
D:\creation\software developer\projects\dev\document root\
路径节点的应用程序js文件:
C:\Users\inf3rno\node_modules\mocha\bin\_mocha
应用参数:
test
我在webstorm控制台以下错误消息
✖ 1 of 1 test failed:
但没有哪个测试失败。 :S
如何解决呢?
(在GIT中的bash我得到详细的错误信息,所以摩卡安装孔)
不同的记者试图,但没有人似乎工作。 问题是与Error对象,我认为。 其它所有东西都显示良好。
写了一个定制记者发现,这是完全随机的堆栈是否显示了webstorm控制台上,还是不行。 最好的选择是与process.stderr.write打印出来,用的console.log或process.stdout.write似乎什么都没有。 我不知道这是为什么。 也许这是某种类型的超时的,但我的超时设置为9999999:S:S:S嗯也许webstorm亚军有一个超时,这取决于,而不是摩卡超时设置...
本报记者进行了测试:
exports = module.exports = WebStorm;
/**
* Initialize a new `WebStorm` test reporter.
*
* @param {Runner} runner
* @api public
*/
//decribe -> suite
//it -> test
function WebStorm(runner) {
var buffer = [];
var suites = [];
var fails = [];
runner.on("suite", function(suite){
suites.push(suite.title || "''");
});
runner.on("suite end", function(suite){
if (fails.length > 0)
buffer.push("describe "+suites.join(".")+"\n"+fails.join("\n"));
fails = [];
suites.pop();
});
runner.on("fail", function(test, err){
fails.push(" it fail "+test.fullTitle() + err.message);
});
runner.on("end", function (){
process.stderr.write(buffer.length+"\n");
//process.stderr.write(buffer.join("\n"));
});
}
我发现它并不真正的问题输出文本有多长,你刚才多久显示它之前等待。 因此,我仍然认为这是一个超时问题,而不是标准输出错误。 所述webstorm控制台返回:“过程结束,退出代码59”,这意味着“意外的网络时发生错误。”
改为茉莉节点,它的工作。
编辑:
我改jasmine2,它有Windows上的同样的问题。 最简单的解决方法是推迟process.exit
例如为1ms。 因此,它不能在年底前退出stdout.write
。 (手动刷新stdout和调用exit后,才可能是一个可行的解决方案也是如此。)