Wed Jul 25 18:34:51 EST 2007 Matt Palmer * Add a test:coverage task to the Rakefile, so we can see how well our files are covered by the test suite diff -rN -u old-trac_urls/Rakefile new-trac_urls/Rakefile --- old-trac_urls/Rakefile 2008-10-20 23:31:05.291856657 +1100 +++ new-trac_urls/Rakefile 2008-10-20 23:31:05.307857119 +1100 @@ -3,6 +3,13 @@ require 'rake/gempackagetask' require 'rake/testtask' +begin + require 'rcov/rcovtask' +rescue LoadError + puts "You do not have a newish version of rcov installed." + puts "Coverage tests won't work for you." +end + spec = Gem::Specification.new do |s| s.name = 'rbot' s.version = '0.9.11' @@ -51,3 +58,24 @@ t.test_files = FileList['test/test*.rb'] t.verbose = true end + +namespace :test do + namespace :coverage do + desc "Delete aggregate coverage data." + task(:clean) { rm_f "test/coverage/aggregate" } + end + + desc 'Aggregate code coverage for unit, functional and integration tests' + task :coverage => "test:coverage:clean" + begin + Rcov::RcovTask.new(:coverage) do |t| + t.libs << "test/lib" + t.test_files = FileList["test/test_*.rb"] + t.output_dir = "test/coverage" + t.verbose = true + t.rcov_opts << '--exclude \'\A/usr/local/lib\'' + end + rescue NameError + # Don't care + end +end