10

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...
4

4 に答える 4

1

Code Shop は、Windows 用に最適化された MRI Ruby を構築しています。詳細については、Code Shop のWeb サイト またはGithub Repoを参照してください。

また、Windows での Rails アプリの開発に関するこのトークもご覧になることをお勧めします。

于 2012-12-21T08:27:13.070 に答える
1

http://railscasts.com/episodes/413-fast-testsをチェックしてみてください。これは、テスト スイートの速度を大幅に向上させるさまざまなツールを示しています。

于 2013-05-09T16:15:55.290 に答える
0

この種のことにはLinux VMを使用します...

私が RSpec で得た最大のテスト速度の向上は、絶対に必要な場合を除き、データベースにアクセスしないようにすることです。

于 2013-05-08T07:56:54.603 に答える