parallel_tests のソースを読んでいますが、まだ理解できていないので、本題に飛び込んでここで質問しようと思いました。
parallel_tests gem は、sweet 内のすべてのテストを同時に実行しますか、それとも順番に実行しますか? (複数のテストを同時に実行することは可能ですか)
並列テストを実行すると、次のようになります。
- 私のすべてのテストを見つける
- それらを偶数の山に分割します(各プロセッサに1つ)
- 各テストの山を順番に実行します
rake parallel:test (75 分) と rake test (85 分) を 4 プロセッサで実行した場合の時間差はわずかであるため、これについては疑問に思っています。
並列テストの出力は、一連のテストを順番に実行しているように見えます。
私の出力は次のようになります。
すべてのプロセッサが見つかったことを示すことから始めます。
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...
それで、これは私の出力のトリックですか、それとも実際に一連のテストを次々と実行しているのでしょうか。時間が改善されればもっと良くなると思っていましたが、これは、テストを実行するために並列化する必要がある他のものに大きな影響を与えます。