RSpecで失敗即終了したい時
痛恨!テスト失敗してた
RSpecでテストを実行した際、大量に失敗するのにテスト完了まで待つのはつらいです。 そんな時に便利なオプションがRSpecにはあります。
Fail Fast
最初の失敗があった時点でテストの実行が止まります。 同じような失敗が大量に出ているspecの修正などに便利です。
bundle exec rspec --fail-fast
パラメータで数値を渡すと、指定した回数失敗した時点で止めてくれます。
bundle exec rspec --fail-fast=3
Only Failures(RSpecバージョン3.3以上)
失敗したテストのみ実行してくれる便利機能です。結果の履歴を保存しておくための設定が必要になります。
spec/spec_heler.rb
などに、
RSpec.configure do |c|
c.example_status_persistence_file_path = "examples.txt"
end
を追加します。ファイルの保存場所はどこでもよいです。.txt
ファイルはソース管理から除外します。
そして、2回目以降の実行時に、
bundle exec rspec --only-failures
とすることで、失敗したテストのみ再実行します。
--next-failures
を指定すると、失敗したテストのみ実行し、かつ最初に失敗した時点でテストがとまります。
bundle exec rspec --next-failures