メインコンテンツまでスキップ

fail_if_no_examples オプションの設定

fail_if_no_examples オプションを使用して、例が存在しない場合に RSpec を失敗ステータス(デフォルトでは 1)で終了させることができます。このオプションを使用する場合は、.rspec ファイルに --require spec_helper オプションを追加することを推奨します。これにより、スペックファイルが読み込まれない場合でも fail_if_no_examples オプションが設定されるようになります。

このオプションは、RSpec テストをローカルで実行せず、CI に依存している場合に特に有用です。これにより、RSpec の例が実行されることを期待していたが実行されなかった場合の誤ったビルドを防ぐことができます。このような状況は、設定の誤りや RSpec の変更によるものかもしれません。

背景

以下の内容で "spec/spec_helper.rb" という名前のファイルがあるとします:

RSpec.configure { |c| c.fail_if_no_examples = true }

以下の内容で ".rspec" という名前のファイルがあるとします:

--require spec_helper

以下の内容で "spec/some.spec.rb" という名前のファイルがあるとします:

RSpec.describe 'something' do
it 'succeeds' do
true
end
end

RSpec のパターンに一致する例ファイル名がないため、例は実行されません

rspec を実行すると

"0 examples, 0 failures" で失敗するはずです。

RSpec のパターンに一致する例ファイル名があり、1 つの例が実行されます

rspec --pattern spec/**/*.spec.rb を実行すると

"1 example, 0 failures" で成功するはずです。