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" で成功するはずです。