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

fail_fast オプションの設定

fail_fast オプションを使用して、RSpecにN回の失敗後に実行を中止するよう指示します。

失敗がない場合の fail_fast(すべての例を実行)

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

RSpec.configure {|c| c.fail_fast = 1}

以下の内容で "spec/example_spec.rb" という名前のファイルを作成します:

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

it "passes too" do
end
end

rspec spec/example_spec.rb を実行すると、

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

最初の例が失敗する場合の fail_fast(1つの例のみ実行)

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

RSpec.configure {|c| c.fail_fast = 1}

以下の内容で "spec/example_spec.rb" という名前のファイルを作成します:

require "spec_helper"
RSpec.describe "something" do
it "fails" do
fail
end

it "passes" do
end
end

rspec spec/example_spec.rb -fd を実行すると、

出力に "1 example, 1 failure" が含まれるはずです。

複数のファイルで2番目の例が失敗する場合の fail_fast(最初の2つの例のみ実行)

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

RSpec.configure {|c| c.fail_fast = 1}

以下の内容で "spec/example_1_spec.rb" という名前のファイルを作成します:

require "spec_helper"
RSpec.describe "something" do
it "passes" do
end

it "fails" do
fail
end
end

RSpec.describe "something else" do
it "fails" do
fail
end
end

以下の内容で "spec/example_2_spec.rb" という名前のファイルを作成します:

require "spec_helper"
RSpec.describe "something" do
it "passes" do
end
end

RSpec.describe "something else" do
it "fails" do
fail
end
end

rspec spec を実行すると、

出力に "2 examples, 1 failure" が含まれるはずです。

fail_fast 2 で1番目と3番目の例が失敗する場合の fail_fast(最初の3つの例のみ実行)

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

RSpec.configure {|c| c.fail_fast = 2}

以下の内容で "spec/example_spec.rb" という名前のファイルを作成します:

require "spec_helper"
RSpec.describe "something" do
it "fails once" do
fail
end

it "passes once" do
end

it "fails twice" do
fail
end

it "passes" do
end
end

rspec spec/example_spec.rb -fd を実行すると、

出力に "3 examples, 2 failures" が含まれるはずです。