我正在使用mocha
测试我的js文件。一些测试用例需要花费一些时间来解决响应,因此我在其中使用了超时。完整的命令看起来像
伊斯坦布尔封面_mocha test / sol-verifier.js---timeout 300000
问题是,在进行此类覆盖时,我没有创建覆盖报告,它仅成功运行测试用例并停止(不终止)。我该如何解决?
我的代码在node.js中,它不会创建任何服务器。
当我删除--timeout
标志并注释掉需要更多时间的测试用例时,也是如此。它工作正常并生成覆盖率报告。
根据我的发现,问题不在--timeout
标志中,当测试用例需要比平时更长的时间来解决时,不会生成报告。
答案 0 :(得分:2)
您可以在测试套件函数中添加done
参数,并在每个测试函数的末尾调用done()
:
it('test expectation', function(done) {
// test asynchronous code
// call done() to terminate test and proceed to the next test
done();
}
或者,尝试在--exit
上使用mocha
标志运行测试:
istanbul cover _mocha --exit test/sol-verifier.js -- --timeout 300000
根据docs:
为了避免误报并鼓励更好的测试实践,Mocha在认为应该完成运行时将不再通过process.exit()automatically kill itself。
如果在您的测试似乎“完成”之后,mocha进程仍然存在,则表明您的测试已安排了一些事情(异步),并且没有对自己进行适当的清理。你没有打开插座吗?
提供--exit标志以使用v4之前的行为。