2011-09-29

rspecの実行を早くする

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
テストをいっぱい書くと
rake spec
が終わるのに時間がかかるようになります。

これを早める方法として
parallel_tests
を利用するという方法があります。
テストを並行実行することでスピードをあげるようです。

以下で紹介されていました。
http://subtech.g.hatena.ne.jp/secondlife/20100819/1282226971


rails 2系を利用している場合の導入手順は、以下の通りです。

・インストール
gem install parallel
gem install parallel_tests

・設定
parallel_testsを導入するプロジェクトごとに以下を設定します。

config/environment.rb
のRails::Initializer.runブロック内に以下を追加
config.gem "parallel"

Rakefile
の一番下に以下を追加
begin; require 'parallel_tests/tasks'; rescue LoadError; end

・テスト用DBの準備
rake parallel:create
rake parallel:prepare

これだけでOKです。
作成済みのテストは特にいじる必要はないようです。

これで
rake parallel:spec
とすることでテストを並行実行できます。

ちなみ2CPUの私の環境では、テスト時間がだいたい2/3になりました。
parallel_testsを導入しても、普通に
rake spec
も実行できます。

導入しておいて損はない感じのparallel_testsです。

ちなみに私の環境はlinuxですのでwindows環境では動かないかもしれません。
コメントを投稿