--failure-exit-code option (exit status)

The rspec command exits with an exit status of 0 if all examples pass, and 1 if any examples fail. The failure exit code can be overridden using the --failure-exit-code option.

A passing spec with the default exit code

Given a file named “ok_spec.rb” with:

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

When I run rspec ok_spec.rb

Then the exit status should be 0

And the examples should all pass.

A failing spec with the default exit code

Given a file named “ko_spec.rb” with:

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

When I run rspec ko_spec.rb

Then the exit status should be 1

And the output should contain “1 example, 1 failure”.

A nested failing spec with the default exit code

Given a file named “nestedkospec.rb” with:

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

When I run rspec nested_ko_spec.rb

Then the exit status should be 1

And the output should contain “1 example, 1 failure”.

Exit with 0 when no examples are run

Given a file named “anoexamples_spec.rb” with:


When I run rspec a_no_examples_spec.rb

Then the exit status should be 0

And the output should contain “0 examples”.

A failing spec and --failure-exit-code is 42

Given a file named “ko_spec.rb” with:

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

When I run rspec --failure-exit-code 42 ko_spec.rb

Then the exit status should be 42

And the output should contain “1 example, 1 failure”.