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