几个月前,我们将项目从 jasmine 迁移到了 jest,现在希望在 TeamCity CI 服务器中添加一些覆盖范围。我们注意到,对于本地开发人员的机器上的 jest,首次运行(包含覆盖)大约需要 2-2.5 分钟,所有后续运行大约需要 20 秒,但在 TeamCity 中大约需要 6 分钟(包含覆盖),并且只有 1:30没有覆盖。有什么方法可以加快覆盖 TeamCity 的测试速度吗?
一个已知问题 [3] 是笑话中的覆盖率会使测试运行速度变慢。然而,没有解释如何解决这个问题。唯一的提示是在运行测试时尝试使用 -i 标志。
我的资料来源 [2] 解释了为什么该标志可以提高测试的效率。该标志禁用多处理,并且在某些资源有限的机器上(他们说)这可以将效率提高两倍。
我的消息来源 [1] 还告诉我们 22.4.4 之后的版本在效率上有所下降(明显慢于 22.4.4),并且直到文章撰写后才得到修复。
此外,他们在 [1] 中建议使用 Node 而不是 JSDOM,因为 Node 更快。
所以,使用:
// package.json
"jest": {
"testEnvironment": "node"
}
Run Code Online (Sandbox Code Playgroud)
希望这些火箭加速您的测试,并且您可以通过打开覆盖选项来标记速度损失。
资料来源:
[1] https://itnext.io/how-to-make-your-sluggish-jest-v23-tests-go-faster-1d4f3388bcdd
[2]为什么 Jest --runInBand 可以加快测试速度?
[3] https://github.com/facebook/jest/issues/2586
| 归档时间: |
|
| 查看次数: |
1760 次 |
| 最近记录: |