sporkによるテスト最速化

2013/06/09 06:26

RSpecの実行が遅すぎてテスト駆動なんてとてもじゃないけどできないよ!
なんて経験があると思いますが、そんなときには Spork+dRuby が有効です。

インストール

まずはGemfileの設定を行い bundle install を実行します。

  • Gemfile
gem 'spork'
  • コマンド

プロジェクトのワークスペース配下で bundle を実行

bundle install
初期セットアップ

rspecを実行するための準備を行います。
下記のコマンドを実行すると spec/spec_helper.rb にsporkで必要な設定が編集されます。

spork rspec --bootstrap
spork環境準備

テストを実行するためにはsporkサーバを起動する必要があります。
RSpecの実行が遅い根本原因はライブラリのロード時間にあります。
sporkを使用するとsporkサーバが事前に関連ライブラリをロードしてくれるため早くなります。

spork

これでdRubyによるsporkサーバが起動します。

テスト実行

最後に-drbオプションをつけてRSpecの実行を行います。

rspec --drb spec/models/examples.rb

他にも環境変数を事前に設定しておく方法と.rspecを編集する方法があります。

  • 環境変数追加

    TM_RSPEC_OPTS=–drb.

  • .rspec追加

    –drb

上記の2点を事前に設定しておくとrspec実行時の–drbオプションが不要になります。