テストのC0カバレッジを上げるために、 何度もrcovを手で実行していたのですが、 テストの数が多くなってくると非常に時間がかかって面倒なため、 自動化するRakeタスクを作りました。
1 namespace :rcov do 2 desc 'Automate rcov' 3 task :auto do 4 interval = (ENV['INTERVAL'] || 10).to_f 5 org_path = File.join(RAILS_ROOT, 'coverage', '*') 6 pub_path = File.join(RAILS_ROOT , 'public', 'coverage') 7 sh "mkdir -p #{pub_path}" 8 loop do 9 Rake::Task['spec:rcov'].execute nil 10 sh "cp -Rf #{org_path} #{pub_path}" 11 sleep interval 12 end 13 end 14 end
使い方はRAILS_ROOT
1 % rake rcov:auto INTERVAL=10
指定した時間間隔(秒)ごとにspec:rcovを実行します。
実行した結果はRSpecのデフォルトでは
RAILS_ROOTに出力されるので、これを
public/covに上書きコピーしています。
あとは、ブラウザで/coverageを見ればOKです。
public/covは間違ってデプロイしないように.gitignoreやsvn:ignoreに登録しておきましょう。
posted by
genki
on Sat 5 Jul 2008
at 03:43


