RSpec2で特定のテストを実行する

Relishより、次のようにすることで特定のdescribe/context/itのみを実行することができる。

spec_helper.rbのRSpec.configureにfilter_runの設定を追加:

RSpec.configure do |c|
  c.filter_run :focus => true
end

テストしたいdescribe/context/itに:focusオプションを追加:

describe User do
  describe "#say", :focus => true do
    it "should return a String" do
      :
    end
  end
end

こうすることで:focus => trueを指定したテストのみが実行され、それ以外は無視される。複数個指定すればそれらすべてが実行されるし、ひとつも指定しなければ何もテストされない。テストコードが多い中で新規にテストを追加する場合などに便利だと思う。

上記のRelishのページに書かれている run_all_when_everything_filtered を設定すれば、:focusが1つも指定されていない場合に全テストを実行するというもの。