spork を使用して rspec を高速化するこのチュートリアルに従いました。Ruby 1.9.2 と Rails 3.2.5 を搭載した win7 x64 ボックスを使用しています。すべてが機能していますが、テストの実行はまだ遅いです。OS がフォークをサポートしていないため、spork は単に Windows ではあまり機能しないのでしょうか?
スピードアップするために他にできることはありますか?
また、この同様の SO の質問を見つけ、Corey Haines による高速テストに関するビデオを見ました。ビデオは楽しめましたが、ツールの状態 (この場合は Rails の起動時間による遅いテスト) によってコードの構造が決まると、何かがおかしいと感じずにはいられません。その遅い起動時間が存在しない場合、彼の方法は必要でしょうか? 一方で、テストの実行に 10 ~ 30 秒かかるため、TDD の利点の多くが失われているため、彼の見解も理解できます。
関連する場合に備えて、rspec が数回実行されたときの spork からのコンソール出力を次に示します。
$ bundle exec spork
Using RSpec
-- Starting to fill pool...
Wait until at least one slave is provided before running tests...
** CTRL+BREAK to stop Spork and kill all ruby slave processes **
Spork is ready and listening on 8989!
-- Rinda Ring Server listening for connections...
-- build slave 1...
Preloading Rails environment
-- build slave 2...
Preloading Rails environment
Loading Spork.prefork block...
Loading Spork.prefork block...
Running tests with args ["--color"]...
--> DRb magazine_slave_service: 1 provided...
--> DRb magazine_slave_service: 2 provided...
<-- take tuple(2); slave.run...
-- (2);run done
Done.
-- build slave 2...
Preloading Rails environment
Loading Spork.prefork block...
Running tests with args ["--color"]...
<-- take tuple(1); slave.run...
-- (1);run done
Done.
-- build slave 1...
Preloading Rails environment
Loading Spork.prefork block...
--> DRb magazine_slave_service: 2 provided...