Rails - 在一项任务中进行Rake测试和rubocop

Imr*_*ran 4 ruby rake static-analysis ruby-on-rails rubocop

我正在尝试设置我的rails项目,以便贡献者所需的所有验证都在一个命令中,目前我们一直在运行:

rake test
Run Code Online (Sandbox Code Playgroud)

但是现在我们还想使用rubocop进行静态分析:

rubocop -R -a
Run Code Online (Sandbox Code Playgroud)

我希望这可以在一个简单的rake任务中执行.很高兴覆盖'rake test'来运行rubocop然后是rails项目的标准rake测试内容,因为没有人必须记住更改命令.但是如果我必须创建一个单独的rake任务,那也可能没问题.

我已经在底部看到了rubocop rake集成,但我不确定如何将"rake test"捆绑到一个任务中...有什么想法吗?

Rim*_*ian 8

我更喜欢将我的默认任务设置为运行rubocop然后运行测试.无论哪种方式,将这些任务分开而不是让一个任务做两件事是个好主意.

注意:从0.24开始,Rubocop变为RuboCop您的代码.

require 'rubocop/rake_task'

task :default => [:rubocop, :test]

desc 'Run tests'
task(:test) do
  # run your specs here
end

desc 'Run rubocop'
task :rubocop do
  RuboCop::RakeTask.new
end
Run Code Online (Sandbox Code Playgroud)

你的任务:

> rake -T
rake rubocop  # Run rubocop
rake test     # Run tests
Run Code Online (Sandbox Code Playgroud)