testing.rake
46 lines
| 1.3 KiB
| text/x-ruby
|
RubyLexer
|
r1743 | ### From http://svn.geekdaily.org/public/rails/plugins/generally_useful/tasks/coverage_via_rcov.rake | ||
### Inspired by http://blog.labratz.net/articles/2006/12/2/a-rake-task-for-rcov | ||||
begin | ||||
require 'rcov/rcovtask' | ||||
|
r1744 | rcov_options = "--rails --aggregate test/coverage.data --exclude '/gems/'" | ||
|
r1743 | namespace :test do | ||
desc "Aggregate code coverage for all tests" | ||||
Rcov::RcovTask.new('coverage') do |t| | ||||
t.libs << 'test' | ||||
t.test_files = FileList['test/{unit,integration,functional}/*_test.rb'] | ||||
t.verbose = true | ||||
|
r1744 | t.rcov_opts << rcov_options | ||
|
r1743 | end | ||
namespace :coverage do | ||||
desc "Delete coverage test data" | ||||
task :clean do | ||||
rm_f "test/coverage.data" | ||||
rm_rf "test/coverage" | ||||
end | ||||
desc "Aggregate code coverage for all tests with HTML output" | ||||
Rcov::RcovTask.new('html') do |t| | ||||
t.libs << 'test' | ||||
t.test_files = FileList['test/{unit,integration,functional}/*_test.rb'] | ||||
t.output_dir = "test/coverage" | ||||
t.verbose = true | ||||
|
r1744 | t.rcov_opts << rcov_options | ||
|
r1743 | end | ||
desc "Open the HTML coverage report" | ||||
task :show_results do | ||||
system "open test/coverage/index.html" | ||||
end | ||||
task :full => "test:coverage:clean" | ||||
task :full => "test:coverage:html" | ||||
task :full => "test:coverage:show_results" | ||||
end | ||||
end | ||||
rescue LoadError | ||||
|
r1746 | # rcov not available | ||
|
r1743 | end | ||