3000 次测试 - 主要性能问题。可以做什么?

wpg*_*rda 5 jestjs

我们的 React 项目有大约 3000 个笑话测试。其中大多数只是典型的“渲染而不崩溃”。

当我们运行时npm test,使用的内存量慢慢攀升至 22 GB。

在只有 16 GB 的机器上,测试会使整个机器停止运行,并且需要很长时间才能完成。

我们尝试过的方法没有奏效或使问题变得更糟:

  1. --maxWorkers=50% 或 --maxWorkers=4 等
  2. --runInBand (太慢了)
  3. --detectLeaks(根据此实验选项,我们的测试中有一半存在内存泄漏,但我们不知道它们是什么,甚至不知道它们是否是导致此问题的原因)

唯一有效的方法是在具有大量 RAM (>= 32Gb) 的计算机上运行测试。

关于如何减少这些测试使用的内存量有什么想法吗?

wpg*_*rda 0

我们通过将测试分成多个步骤来解决这个问题。

例如,如果您有两个源文件夹:

a/
b/
Run Code Online (Sandbox Code Playgroud)

然后npm test,您可以分两步运行它,而不是运行:

react-scripts test src/a && react-scripts test src/b
Run Code Online (Sandbox Code Playgroud)

这将清除每个步骤中使用的内存。