TeamCity 中的覆盖范围笑话花费时间太长

Top*_*paZ 5 jestjs

几个月前,我们将项目从 jasmine 迁移到了 jest,现在希望在 TeamCity CI 服务器中添加一些覆盖范围。我们注意到,对于本地开发人员的机器上的 jest,首次运行(包含覆盖)大约需要 2-2.5 分钟,所有后续运行大约需要 20 秒,但在 TeamCity 中大约需要 6 分钟(包含覆盖),并且只有 1:30没有覆盖。有什么方法可以加快覆盖 TeamCity 的测试速度吗?

mic*_*ico 3

一个已知问题 [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