Rubocop 和 Capybara:检测遗忘的焦点::真
Rubocop and Capybara: detecting forgotten focus: :true
作为一名 Rails 开发人员,我习惯了在我的 CI 上使用 Rubocop,我喜欢的基本功能之一是检测遗忘的调试器条目,例如 byebug
.
还有一个容易忘记的字符串:Capybara 功能规范中的 :focus
或 focus: :true
。它刚刚发生在我的团队中,我们正在寻找一种方法来防止它。
我见过rubocop-rspec,但显然没有涵盖这种情况。
最有效的选择是什么?
Rubocop 已经检查了 focus: true
和 :focus
。确保您的团队没有禁用警察。
# bad
describe MyClass, focus: true do
end
# bad
describe MyClass, :focus do
end
# good
fdescribe MyClass do
end
# good
describe MyClass do
end
将 RSpec 配置为在 CI 上也忽略 :focus 是个好主意 - 这样即使遗留挥之不去的 :focus,您的所有测试也会得到 运行。例如,可以使用
在 Travis 上完成
RSpec.configure do |config|
config.filter_run_including focus: true unless ENV['TRAVIS']
config.run_all_when_everything_filtered = true
end
作为一名 Rails 开发人员,我习惯了在我的 CI 上使用 Rubocop,我喜欢的基本功能之一是检测遗忘的调试器条目,例如 byebug
.
还有一个容易忘记的字符串:Capybara 功能规范中的 :focus
或 focus: :true
。它刚刚发生在我的团队中,我们正在寻找一种方法来防止它。
我见过rubocop-rspec,但显然没有涵盖这种情况。
最有效的选择是什么?
Rubocop 已经检查了 focus: true
和 :focus
。确保您的团队没有禁用警察。
# bad
describe MyClass, focus: true do
end
# bad
describe MyClass, :focus do
end
# good
fdescribe MyClass do
end
# good
describe MyClass do
end
将 RSpec 配置为在 CI 上也忽略 :focus 是个好主意 - 这样即使遗留挥之不去的 :focus,您的所有测试也会得到 运行。例如,可以使用
在 Travis 上完成RSpec.configure do |config|
config.filter_run_including focus: true unless ENV['TRAVIS']
config.run_all_when_everything_filtered = true
end