Rails 使用 Minitest,如何在每次测试 运行 时自动将 RuboCop 设置为 运行 with rake?
With Rails using Minitest, how can I set up RuboCop to run automatically each time tests are run with rake?
当我 运行 以下命令时,我希望 RuboCop 检查我在测试前指定的应用程序目录 运行:
bundle exec rake test
我向 lib/tasks/test.rake
添加了以下任务:
require 'rubocop/rake_task'
# Add additional test suite definitions to the default test task here
namespace :test do
desc 'Runs RuboCop on specified directories'
RuboCop::RakeTask.new(:rubocop) do |task|
# Dirs: app, lib, test
task.patterns = ['app/**/*.rb', 'lib/**/*.rb', 'test/**/*.rb']
# Make it easier to disable cops.
task.options << "--display-cop-names"
# Abort on failures (fix your code first)
task.fail_on_error = false
end
end
Rake::Task[:test].enhance ['test:rubocop']
结果:
$ bundle exec rake test
Running RuboCop...
Inspecting 9 files
.........
9 files inspected, no offenses detected
Run options: --seed 55148
# Running:
...................
Finished in 1.843280s, 10.3077 runs/s, 34.7207 assertions/s.
19 runs, 64 assertions, 0 failures, 0 errors, 0 skips
当我 运行 以下命令时,我希望 RuboCop 检查我在测试前指定的应用程序目录 运行:
bundle exec rake test
我向 lib/tasks/test.rake
添加了以下任务:
require 'rubocop/rake_task'
# Add additional test suite definitions to the default test task here
namespace :test do
desc 'Runs RuboCop on specified directories'
RuboCop::RakeTask.new(:rubocop) do |task|
# Dirs: app, lib, test
task.patterns = ['app/**/*.rb', 'lib/**/*.rb', 'test/**/*.rb']
# Make it easier to disable cops.
task.options << "--display-cop-names"
# Abort on failures (fix your code first)
task.fail_on_error = false
end
end
Rake::Task[:test].enhance ['test:rubocop']
结果:
$ bundle exec rake test
Running RuboCop...
Inspecting 9 files
.........
9 files inspected, no offenses detected
Run options: --seed 55148
# Running:
...................
Finished in 1.843280s, 10.3077 runs/s, 34.7207 assertions/s.
19 runs, 64 assertions, 0 failures, 0 errors, 0 skips