【发布时间】:2020-03-29 15:57:53
【问题描述】:
几个月前,我们将项目从 jasmine 迁移到 jest,现在想在我们的 TeamCity CI 服务器中添加一些覆盖范围。我们注意到,在本地开发者的机器上,第一次运行(有覆盖)大约需要 2-2.5 分钟,所有后续运行大约需要 20 秒,但在 TeamCity 中大约需要 6 分钟(有覆盖),只有 1:30没有覆盖。有什么方法可以加快 TeamCity 覆盖率的测试?
【问题讨论】:
标签: jestjs
几个月前,我们将项目从 jasmine 迁移到 jest,现在想在我们的 TeamCity CI 服务器中添加一些覆盖范围。我们注意到,在本地开发者的机器上,第一次运行(有覆盖)大约需要 2-2.5 分钟,所有后续运行大约需要 20 秒,但在 TeamCity 中大约需要 6 分钟(有覆盖),只有 1:30没有覆盖。有什么方法可以加快 TeamCity 覆盖率的测试?
【问题讨论】:
标签: jestjs
已知问题 [3] 中的覆盖率会使运行测试变慢。但是,没有解释什么可以解决这个问题。唯一的提示是在运行测试时尝试使用 -i 标志。
我的来源 [2] 说明了为什么该标志可以同时提高测试的效率。该标志禁用多处理,并且在一些资源有限的机器上(他们说)这将效率提高了两倍。
我的消息来源 [1] 还告诉 22.4.4 之后的版本效率下降(明显慢于 22.4.4),并且直到撰写文章时才修复。
此外,他们在 [1] 中建议使用 Node 而不是 JSDOM,因为 Node 更快。
所以,使用:
// package.json
"jest": {
"testEnvironment": "node"
}
希望这些火箭加速您的测试,您可以通过打开覆盖选项来标记速度损失。
来源:
[1]https://itnext.io/how-to-make-your-sluggish-jest-v23-tests-go-faster-1d4f3388bcdd
【讨论】:
dotnet.cli.test.reporting 参数,这将
恢复正常运行时间。vstest 命令而不是
test 因为它支持更精确的测试适配器路径声明。【讨论】: