如何将rubocop与Rake集成?

N.N*_*.N. 27 ruby rake coding-style

rubocop是Ruby的代码样式检查器.一个类似于rubocop的工具,Cane,可以与Rake集成.我更喜欢rubocop到Cane,因为rubocop根据Ruby Style Guide进行检查,它似乎发现了更多的问题.为了自动化样式检查过程,我想将rubocop与Rake集成,以便在缺少代码质量时构建失败.

Gem已经支持通过Rake向包添加测试.我想对样式检查做同样的事情,以便样式检查与测试一起运行.我怎样才能做到这一点?

如果它有助于从Rakefile开始这里是一个:

# -*- coding: utf-8; mode: ruby -*-

require 'bundler/gem_tasks'
require 'rake/testtask'

Rake::TestTask.new do |t|
  t.libs << 'test'
  t.test_files = FileList['test/unit/test*.rb']
end

desc 'Run tests'
task default: :test
Run Code Online (Sandbox Code Playgroud)

小智 67

从版本开始,0.10.0rubocop包含您可以使用的自定义rake任务.只需将以下内容放入您的Rakefile

require 'rubocop/rake_task'

RuboCop::RakeTask.new
Run Code Online (Sandbox Code Playgroud)

确保使用大写的"R"和"C",否则会出现NameError.


HPa*_*ker 24

我强烈推荐,

require 'rubocop/rake_task'

RuboCop::RakeTask.new(:rubocop) do |t|
  t.options = ['--display-cop-names']
end
Run Code Online (Sandbox Code Playgroud)

这使用了rubocop自己的rake任务,并允许您根据需要传递选项.


jon*_*054 -13

我建议您购买 rubocop 计划。这是最简单的解决方案。只需将其添加到您的 Rakefile 中:

task test: :rubocop

task :rubocop do
  sh 'rubocop'
end
Run Code Online (Sandbox Code Playgroud)

  • 下面的解决方案可能更好 - 使用 `RuboCop::RakeTask` (5认同)