С помощью Rails, использующих Minitest, как я могу настроить RuboCop для автоматического запуска при каждом запуске тестов с помощью rake?
Когда я выполняю следующую команду, я хочу, чтобы RuboCop проверял каталоги приложений, которые я указываю перед запуском тестов:
bundle exec rake test
1 ответ:
Я добавил следующую задачу к
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