これ僕.com:行動分析学マニアがおくる行動戦略

意図と行動のギャップから生じる「不自由さ」への挑戦。果たして僕たちに自由はあるのか?

rspecとrailsとrcov

Rubyのカバレッジツール「rcov」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ
そういえばrcovってrspecと一緒に使えるのかな〜、と思ったまま放置していた。ちょちょいとRakefileを作ればいけるみたい。

require "rake"
require "spec/rake/spectask"

desc "Run with rcov"
Spec::Rake::SpecTask.new("spec_with_rcov") do |t|
  t.spec_files = FileList["spec/**/*.rb"]
  t.rcov = true
  t.spec_opts = ["-c", "-fs"]
  t.rcov_opts = ["-x", "spec"]
end

これをRAILS_ROOT/lib/tasksにrcov.rakeとかで保存して

% rake spec_with_rcov

で、実行。結果はRAILS_ROOT/coverage以下に吐かれる。

% ls coverage                                                                                                                                  
./                                        app-helpers-application_helper_rb.html    app-models-user_rb.html                   index.html
../                                       app-helpers-tasks_helper_rb.html          config-boot_rb.html
app-controllers-application_rb.html       app-models-task_activity_rb.html          config-environment_rb.html
app-controllers-tasks_controller_rb.html  app-models-task_rb.html                   config-routes_rb.html

こんな感じ。index.htmlを開くとレポートを参照できる。

参考