node.js - 当测试用例需要更多时间时,伊斯坦布尔与 mocha 不生成覆盖率报告
问题描述
我正在使用 .js 测试我的 js 文件mocha
。一些测试用例需要时间来解决响应,所以我使用了超时。完整的命令看起来像
伊斯坦布尔封面 _mocha test/sol-verifier.js -- --timeout 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
on 标志运行测试mocha
:
istanbul cover _mocha --exit test/sol-verifier.js -- --timeout 300000
根据文档:
为了避免误报并鼓励更好的测试实践,当 Mocha认为应该运行时,它不会再通过 process.exit()自动杀死自己。
如果在您的测试看起来“完成”之后 mocha 进程仍然存在,那么您的测试已经安排了一些事情发生(异步)并且没有正确地清理自己。你有没有打开一个插座?
提供 --exit 标志以使用 v4 之前的行为。
推荐阅读
- typescript - 输入“承诺”
' 缺少以下属性 - python-3.x - 在 geopandas 上应用多个聚合函数
- django - 如何将手动创建的表单转换为 django 表单?
- vue.js - 如何在 Vue Js 中加载静态图像
- python - Sublime Text 3:所有下拉选项都会导致空白选项卡
- ruby-on-rails - 用偏执的 gem 调用一个软删除的对象来 real_destroy
- c# - 为什么 Microsoft.AspNetCore.OData 打破了我的 Swagger?
- java - 按值对 HashMap 进行排序并转换为新 Map
- r - 点大小表示值时如何更改点大小的范围
- python-3.x - 嵌入到 def 中时,参数不会传递到我的 scipy.optimize.minimize 函数中。他们不断返回“未定义”