用法
您需要告诉 RuboCop 加载 RSpec 扩展。有三种方法可以做到这一点
RuboCop 配置文件
将此内容添加到您的 .rubocop.yml
文件中
require: rubocop-rspec
或者,如果您使用多个扩展
require: - rubocop-rspec - rubocop-performance
现在您可以运行 rubocop
,它将自动加载 RuboCop RSpec 代码规范以及标准代码规范。
RSpec DSL 配置
如果您 为 RSpec DSL 定义别名,例如示例、示例组、钩子或包含示例语句,您需要对其进行配置,以便 RuboCop RSpec 可以正确检测到这些元素。
# spec/spec_helper.rb
RSpec.configure do |c|
c.alias_example_group_to :detail, :detailed => true
end
# spec/detail_spec.rb
RSpec.detail "a detail" do
it "can do some less important stuff" do
end
end
# .rubocop.yml
RSpec:
Language:
ExampleGroups:
Regular:
- detail
一些库广泛地定义了 RSpec DSL 别名(例如 Pundit、Action Policy)或增强了现有元素以提供相同的语义(例如 test-prof
中的 let_it_be
)。这些库可以提供必要的配置,但并不一定会这样做。如果它们确实提供了配置,它们的 README 文件会提到您必须从您的 .rubocop.yml
文件中显式地要求它们的配置。
# .rubocop.yml
require:
- rubocop-rspec
- test-prof
# or
RSpec:
Language:
Helpers:
- let_it_be
默认的合并模式是继承,因此您不会删除任何默认设置。 |
RuboCop RSpec 的 默认配置 是有关可配置内容的信息来源。
代码气候
rubocop-rspec
在代码气候中作为 rubocop 引擎的一部分提供。 了解更多.
检查不以 _spec.rb
结尾的文件
默认情况下,rubocop-rspec
只检查以 _spec.rb
结尾或包含 spec/
的路径中的代码。您可以在配置文件中通过设置 Include
来覆盖此设置。
# Inspect files in `test/` directory
RSpec:
Include:
- '**/test/**/*'
# Inspect only files ending with `_test.rb`
RSpec:
Include:
- '**/*_test.rb'
请记住,Include 的合并模式设置为覆盖默认设置,因此如果您打算在保留默认路径的同时添加路径,您应该在配置中包含默认的 Include 路径。
|