不同的rubocop输出

时间:2015-10-23 17:16:02

标签: ruby-on-rails rubocop

现在rubocop为我的rails项目提供了3个不同的输出,具体取决于我如何调用它。

> rubocop # version: 0.34.2
88 files inspected, 5 offenses detected

>bundle exec rubocop # version: 0.30.1
87 files inspected, no offenses detected

>rake # with :rubocop in my task list
87 files inspected, 35 offenses detected

>bundle exec rake # with :rubocop in my task list
87 files inspected, 35 offenses detected

2个变化是有道理的,因为我的系统rubocop版本与我的Gemfile中的版本不同。但 3 ? wuuuut?

我假设第3个输出来自某个地方的第三个版本的rubocop?它会在哪里?这里发生了什么?

更新

任务列表:['ci:setup', :spec, :rubocop, :jshint, 'brakeman:run', 'bundler:audit', 'bundler:outdated']

更新2:

根据同事的建议,我放弃了这个以试图在rake期间获得正在运行的rubocop版本:

task :rubocop do
  require 'rubocop/rake_task'
  require 'rubocop/version'
  puts RuboCop::Version.version
  RuboCop::RakeTask.new do |task|
    task.patterns = ['--rails']
  end
end

打印0.30.1,即我期望的版本。仍然没有解释错误。

1 个答案:

答案 0 :(得分:0)

这是令人伤心和尴尬的。

如果我更仔细地研究了rubocop的rake任务,我会注意到:

task.patterns = ['--rails'] 

这会增加一些额外的警察。将该标志添加到bundle exec rubocop --rails匹配rake运行的输出。

我希望这可以帮助别人更快地注意到这一点。