namespace :coverage do
task :clean do rm_f "coverage" rm_f "coverage.data" Rcov = "cd test && rcov --rails --aggregate coverage.data -Ilib:. \ --text-summary -x 'bundler/*,gems/*'" end def display_coverage if RUBY_PLATFORM =~ /darwin/ then open_cmd = 'open' else open_cmd = 'sensible-browser' end system("#{open_cmd} test/coverage/index.html &") end desc 'Measures unit test coverage' task :units => :clean do system("#{Rcov} --html unit/*_test.rb") display_coverage end desc 'Measures functional test coverage' task :functionals => :clean do system("#{Rcov} --html functional/*_test.rb") display_coverage end desc 'Measures integration test coverage' task :integration => :clean do system("#{Rcov} --html integration/*_test.rb") display_coverage end desc 'Measures perfomance test coverage' task :perfomance => :clean do system("#{Rcov} --html perfomance/*_test.rb") display_coverage end desc 'All unit test coverage' task :all => :clean do system("#{Rcov} --html */*_test.rb") display_coverage end
end
task :coverage do
Rake::Task["coverage:all"].invoke
end