Node.js 伊斯坦布尔,当测试用例需要更多时间时,mocha不生成覆盖率报告
我正在使用Node.js 伊斯坦布尔,当测试用例需要更多时间时,mocha不生成覆盖率报告,node.js,unit-testing,istanbul,Node.js,Unit Testing,Istanbul,我正在使用mocha测试我的js文件。一些测试用例在解析响应时需要时间,所以我使用了timeout。完整的命令看起来像 伊斯坦布尔封面_mochatest/sol-verifier.js--300000超时 问题是,在进行这样的覆盖时,我并没有创建覆盖报告,它只成功地运行测试用例并停止(而不是终止)。我怎样才能解决这个问题 我的代码在node.js中,它不创建任何服务器 另外,当我删除--timeout标志并注释掉需要更多时间的测试用例时。它工作正常并生成覆盖率报告 根据我的发现,问题不在--t
mocha
测试我的js文件。一些测试用例在解析响应时需要时间,所以我使用了timeout。完整的命令看起来像
伊斯坦布尔封面_mochatest/sol-verifier.js--300000超时
问题是,在进行这样的覆盖时,我并没有创建覆盖报告,它只成功地运行测试用例并停止(而不是终止)。我怎样才能解决这个问题
我的代码在node.js中,它不创建任何服务器
另外,当我删除--timeout
标志并注释掉需要更多时间的测试用例时。它工作正常并生成覆盖率报告
根据我的发现,问题不在
--timeout
标志中,当测试用例需要比平时更长的时间才能解决时,不会生成报告。您可以向测试套件函数添加done
参数,并在每个测试函数结束时调用done()
:
it('test expectation', function(done) {
// test asynchronous code
// call done() to terminate test and proceed to the next test
done();
}
或者,尝试使用摩卡
上的--exit
标志运行测试:
伊斯坦布尔封面_mocha--exit test/sol-verifier.js--timeout 300000
根据报告:
为了避免误报并鼓励更好的测试实践,Mocha将不再通过process.exit()运行它认为应该运行的程序
如果mocha流程在您的测试看起来“完成”后仍然有效,那么您的测试已经安排了一些事情发生(异步),并且没有在正确地完成之后进行清理。你有没有把插座开着
提供--exit标志以使用v4之前的行为