我正在阅读parallel_tests 源代码,但还不明白,所以我想我会跳入追逐并在这里问我的问题。
parallel_tests gem 是同时还是按顺序运行你的所有测试?(是否可以同时运行多个测试)
当我运行并行测试时,它看起来像这样:
- 找到我所有的测试
- 将它们分成偶数堆(每个处理器一个)
- 按顺序运行每一堆测试
我想知道这是因为使用四个处理器运行 rake parallel:test(75 分钟)和 rake test(85 分钟)之间的时间差异很小。
并行测试的输出使它看起来像是在按顺序运行测试组。
我的输出如下所示:
它首先表明它已找到我的所有处理器:
rake parallel:test[functional]
4 processes for 223 tests, ~ 55 tests per process
然后它似乎按顺序运行每个测试子集:
......
841 tests, 3605 assertions, 0 failures, 3 errors, 0 skips
Test run options: --seed 15002
oaded suite -e
...............
Finished in 1928.494289 seconds.
542 tests, 2296 assertions, 0 failures, 0 errors, 0 skips
Test run options: --seed 30455
oaded suite -e
....
etc...
那么,这是我输出的一个技巧,还是真的一个接一个地运行每组测试。我在想我会得到更好的时间改进,而且这对我需要并行化以使我的测试运行的其他东西有很大的影响。