设置 `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` 第一个示例失败(仅运行一个示例)

给定一个名为“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 个示例,1 个失败”。

`fail_fast` 多个文件,第二个示例失败(仅运行前两个示例)

给定一个名为“spec/spec_helper.rb”的文件,其中包含

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

以及一个名为“spec/example1spec.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/example2spec.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 个示例,1 个失败”。

`fail_fast 2` 第 1 个和第 3 个示例失败(仅运行前 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 个示例,2 个失败”。