web-dev-qa-db-ja.com

rubocopをRakeと統合する方法は?

rubocop はRubyのコードスタイルチェッカーです。 rubocopと同様のツールであるCaneは、 Rakeと統合 にすることができます。 rubocopは Rubyスタイルガイド に基づいてチェックを行い、 より多くの問題を見つける のように見えるので、私は杖よりもrubocopを好みます。スタイルチェックのプロセスを自動化するために、rubocopをRakeと統合して、コードの品質が不足している場合にビルドが失敗するようにします。

Gemはすでに テストの追加 をRake経由でパッケージにサポートしています。テストと一緒にスタイルチェックが実行されるように、スタイルチェックでも同じことをしたいと思います。これどうやってするの?

Rakefileから始めるのに役立つ場合は、次の1つを使用します。

# -*- 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
29
N.N.

バージョン0.10.0 rubocopの時点で、使用できるカスタムrakeタスクが含まれています。 Rakefileに以下を入力するだけです

require 'rubocop/rake_task'

RuboCop::RakeTask.new

必ず大文字の「R」と「C」を使用してください。そうしないと、NameErrorが発生します。

65
Martin

私は強くお勧めします、

require 'rubocop/rake_task'

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

これはrubocop独自のrakeタスクを使用し、必要に応じてオプションを渡すことができます。

23
HParker

RSpecテストにGuardを使用する場合は、おそらく https://github.com/yujinakayama/guard-rubocop が役立つでしょう。これにより、Rubocopは、ファイルを保存するとすぐに、テスト結果とともに即座にフィードバックを提供できます。

3
Joe Gatt