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

--failure-exit-code オプション(終了ステータス)

rspec コマンドは、すべての例がパスした場合には終了ステータス 0 で終了し、 例がいずれか失敗した場合には終了ステータス 1 で終了します。失敗の終了コードは、 --failure-exit-code オプションを使用して上書きすることができます。

デフォルトの終了コードでパスするスペック

次の内容で "ok_spec.rb" という名前のファイルがあるとします。

RSpec.describe "ok" do
it "passes" do
end
end

rspec ok_spec.rb を実行すると、

終了ステータスは 0 であるべきです。

そして、すべての例がパスするはずです。

デフォルトの終了コードで失敗するスペック

次の内容で "ko_spec.rb" という名前のファイルがあるとします。

RSpec.describe "KO" do
it "fails" do
raise "KO"
end
end

rspec ko_spec.rb を実行すると、

終了ステータスは 1 であるべきです。

そして、出力には "1 example, 1 failure" という文字列が含まれるはずです。

デフォルトの終了コードでネストした失敗するスペック

次の内容で "nested_ko_spec.rb" という名前のファイルがあるとします。

RSpec.describe "KO" do
describe "nested" do
it "fails" do
raise "KO"
end
end
end

rspec nested_ko_spec.rb を実行すると、

終了ステータスは 1 であるべきです。

そして、出力には "1 example, 1 failure" という文字列が含まれるはずです。

例が実行されない場合は終了ステータス 0 で終了する

次の内容で "a_no_examples_spec.rb" という名前のファイルがあるとします。

RSpec.describe "KO" do
it "fails" do
raise "KO"
end
end

rspec --failure-exit-code 42 ko_spec.rb を実行すると、

終了ステータスは 42 であるべきです。

そして、出力には "1 example, 1 failure" という文字列が含まれるはずです。