【发布时间】:2019-11-03 05:08:14
【问题描述】:
在 VueJs Web 应用程序中,我们使用 vue-test-utils 和 mocha-webpack 编写了 500 多个单元测试用例(在所有模块中),并使用 nyc 进行覆盖率报告。 考虑一个目录中的每个模块。当我为特定模块运行测试用例时,报告会成功生成测试用例结果(通过或失败)。但是一次性运行所有测试用例(通过在 package.json 中设置路径),所有测试用例都不会执行并抛出以下错误:
超过 100000 毫秒的超时。对于异步测试和钩子,确保调用“done()”;如果返回 Promise,请确保它已解决。
我看到过类似的问题,建议在代码中使用 async await 或增加超时来解决此问题,但为什么在我为特定模块运行时会执行测试用例,而在为整个项目运行时会抛出上述错误。
我尝试在 package.json 中设置 --timeout 100000 并且它有助于大量测试用例,但是在再次运行所有(超过 500 个)单元测试用例时它会抛出相同的错误。 我认为这与测试用例的数量有关。
是什么导致了这个问题以及如何解决这个问题,以便所有测试用例都能成功运行。?
编辑 如果单元测试中的任何代码导致此超时问题,如何检测导致此问题的测试用例,因为通过查看命令提示符中的日志似乎无法检测问题的根源。任何指针都会有所帮助。
【问题讨论】:
-
问题不够具体。不看测试用例是不可能回答这个问题的。见stackoverflow.com/help/how-to-ask。如果测试包含在批量执行时可能导致测试时间变慢的东西(db,无论),那就是问题所在。否则不是。
-
要验证时间是问题,为什么不试试 --timeout 1000000000 或其他可笑的高点?
标签: node.js unit-testing mocha.js vue-test-utils mocha-webpack