そのため、テストの実行時間を改善しようとしており、いくつかの優れたアドバイスに従っています (最も注目すべきはRailscasts 412 )。
zeus test test
Zeus は正常に動作しているようです ( Minitest スイートを実行するために入力する必要があるという奇妙な点を除けば)。
zeus からの時限出力は次のとおりです。
ベースライン (レーキ テスト):
$ time rake test
Run options: --seed 62848
# Running tests:
........
Finished tests in 0.117071s, 68.3346 tests/s, 68.3346 assertions/s.
8 tests, 8 assertions, 0 failures, 0 errors, 0 skips
real 0m5.771s
user 0m4.477s
sys 0m0.872s
そしてゼウスと:
$ time zeus test test
Run options: --seed 10325
# Running tests:
........
Finished tests in 0.126365s, 63.3087 tests/s, 63.3087 assertions/s.
8 tests, 8 assertions, 0 failures, 0 errors, 0 skips
real 0m0.765s
user 0m0.209s
sys 0m0.030s
良い。5.7 秒から 0.7 秒に短縮。
今、春になって、最初の実行後に改善が見られません. 私はSpring gem 1.1.0beta4を実行しており、説明どおりにインストールしています(Gemfileに追加してから実行していますbundle exec spring binstub --all
)。
そして、ここに私が持っているものがあります:
ベースライン、1 回目の実行 (レーキ テスト):
time bin/rake test
Run options: --seed 49915
# Running tests:
........
Finished tests in 0.108359s, 73.8287 tests/s, 73.8287 assertions/s.
8 tests, 8 assertions, 0 failures, 0 errors, 0 skips
real 0m6.265s
user 0m0.072s
sys 0m0.020s
春が実行されていることを確認します。
$ spring status
Spring is running:
2990 spring server | gdc4 | started 43 secs ago
2991 spring app | gdc4 | started 43 secs ago | test mode
そして、テストを再度実行します...
$ time bin/rake test
Run options: --seed 27416
# Running tests:
........
Finished tests in 0.132677s, 60.2968 tests/s, 60.2968 assertions/s.
8 tests, 8 assertions, 0 failures, 0 errors, 0 skips
real 0m3.885s
user 0m0.069s
sys 0m0.014s
そのため、少し高速化されていますが、それでも実行に約 4 秒かかります。一方、レール コンソールは、Spring を使用すると 1 秒未満で高速にロードされます。
ですから、私の質問は次のとおりです。Zeus はテストで桁違いのスピードアップ (5.7 秒 -> 0.7 秒) を達成できるのに、Spring はそうではないのはなぜですか?
Rails 4.0.2、Ruby 2.0.0 を実行しています。