设置 fail_if_no_examples 选项

使用 fail_if_no_examples 选项,如果没有任何示例,则使 RSpec 以失败状态(默认情况下为 1)退出。使用此选项,建议将 --require spec_helper 选项添加到 .rspec 文件中,以确保即使未加载任何规范文件,也设置了 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 个示例,0 个失败”失败。

示例文件名与 RSpec 模式匹配,运行 1 个示例

我运行 rspec --pattern spec/**/*.spec.rb

那么它应该通过“1 个示例,0 个失败”成功。