Rubocop 和 Capybara:检测遗忘的焦点::真

Rubocop and Capybara: detecting forgotten focus: :true

作为一名 Rails 开发人员,我习惯了在我的 CI 上使用 Rubocop,我喜欢的基本功能之一是检测遗忘的调试器条目,例如 byebug.

还有一个容易忘记的字符串:Capybara 功能规范中的 :focusfocus: :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