2013-02-21 11 views
19

rubocopは、Ruby用のコードスタイルチェッカーです。 rubocopと同様のツールCaneは、integrated with Rakeです。 rubocopはRuby Style Guideに基づいてチェックを行い、それはspot more problemsと思われるので、私はRubocopをCaneにする方が好きです。スタイルチェックのプロセスを自動化するために、RakeとRubocopを統合して、コードの品質が不十分な場合にビルドが失敗するようにしたいと考えています。rubakeをRakeに統合するには?

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

それはここ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 

答えて

0

私はrubocopプログラムに砲撃をお勧めします。それは最も簡単な解決策です。ちょうどあなたのRakefileにこれを追加します。あなたはRSpecのテストのためのガードを使用する場合は、おそらくhttps://github.com/yujinakayama/guard-rubocopが役に立つでしょう

task test: :rubocop 

task :rubocop do 
    sh 'rubocop' 
end 
+3

おそらく、RuboCop :: RakeTaskを使って、 –

2

。 Ruboopは、テスト結果と共にファイルを保存すると即座にフィードバックを提供します。

54

バージョン0.10.0のrubocopには、使用できるカスタムのレーキタスクが含まれています。ただ、大文字の「R」と「C」を使用することを確認したり、NameErrorを取得するあなたのRakefile

require 'rubocop/rake_task' 

RuboCop::RakeTask.new 

で次置きます。

-2

あなたが好むオプションでレーキを経由して支払うことができます。

desc 'Run Rubocop with options' 
    task rubocop: :environment do 
    sh 'bundle exec rubocop -D --format offenses --format progress || true' 
    end 

私はその後、出力を含めるために、デフォルトのタスクを変更することをお勧めします。そのトリックは、タスクをクリアし、次にあなたが望むものを追加することです。 Rubocopのエラーが次のタスクの実行を妨げないように、|| trueで終了する必要があることに注意してください。ここでは、並列テストを使用する、私は何をすべきかです:、私は非常にお勧め

task(:default).clear.enhance ['parallel:parallel_prepare', 'parallel:spec', 
           'parallel:features', 'lint:rubocop', 
           'lint:rails_best_practices'] 
16

require 'rubocop/rake_task' 

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

これはrubocop自身のすくいタスクを使用して、あなたが好きならオプションを渡すことができます。

関連する問題