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を開くとレポートを参照できる。
参考
- rspec + rcov でテストカバレージをとることを試した: katoy: cocolog
- rcov - LazyLoadLife
- Webrick経由でレポートを見る方法が載ってました。素晴らしい。