我正在用EC2 Jenkins从站上的Jest和Puppeteer运行60个E2E测试。测试时间介于7-90秒之间,平均为24秒-表示依次运行约24-25分钟时的总时间。
在运行jest -w 10
时,它会并行运行10个测试,但是每个测试都花费更长的时间,时间类似于jest --runInBand
都在大约24-26分钟左右结束。
我阅读了this和相关链接,由于假定资源有限,并且仍然没有影响,因此将我正在运行的计算机更改为r5ad.12xlarge
(48核,384 GB!)。总运行时间。我做了更多尝试:
--ci --detectOpenHandles
和不使用NODE_OPTIONS=--max_old_space_size=4096
仍然没有。node --expose-gc ./node_modules/.bin/jest --runInBand --logHeapUsage
也没有更改。xml
检查了堆的使用情况,并发现了一些泄漏-堆的使用量逐渐从约100MB增加到1100MB 我的问题是我是否缺少某些东西(国旗,詹金斯经纪人政策)?也许出于E2E的目的,我应该尝试其他测试者,因为开玩笑的目标更多是单元测试?
答案 0 :(得分:0)
经过几次尝试,我发现了主要问题:
defaultValue
时,詹金斯(Jenkins)中有一个bug,它只有在另一个构建之后才生效。因此,即使删除--detectOpenHandles
,也会使我的构建变长。另外,它使得结果难以追踪。c5.4xlarge
,这也带来了很大的不同。我的最佳选择是设置--maxWorkers=33%
,因为我们的Web应用程序也可以在同一台计算机上运行。希望这对某人有帮助。