== Code coverage analysis automation with Rant Since 0.5.0, rcov features a Rcov generator for eant which can be used to automate test coverage analysis. Basic usage is as follows: require 'rcov/rant' desc "Create a cross-referenced code coverage report." gen Rcov do |g| g.test_files = sys['test/test*.rb'] end This will create by default a task named rcov. === Passing command line options to rcov You can provide a description, change the name of the generated tasks (the one used to generate the report(s) and the clobber_ one) and pass options to rcov: desc "Create cross-referenced code coverage report." gen Rcov, :coverage do |g| g.test_files = sys['test/test*.rb'] g.rcov_opts << "--threshold 80" << "--callsites" end That will generate a coverage task. You can specify a different destination directory, which comes handy if you have several rcov tasks: desc "Analyze code coverage for the FileStatistics class." gen Rcov, :rcov_sourcefile do |g| g.libs << "ext/rcovrt" g.test_files = sys['test/test_FileStatistics.rb'] g.rcov_opts << "--test-unit-only" g.output_dir = "coverage.sourcefile" end desc "Analyze code coverage for CodeCoverageAnalyzer." gen Rcov, :rcov_ccanalyzer do |g| g.libs << "ext/rcovrt" g.test_files = sys['test/test_CodeCoverageAnalyzer.rb'] g.rcov_opts << "--test-unit-only" g.output_dir = "coverage.ccanalyzer" end === Options specified passed to the generator The +Rcov+ generator recognizes the following options: +libs+:: directories to be added to the $LOAD_PATH +rcov_opts+:: array of options to be passed to rcov +test_files+:: files to execute +test_dirs+:: directories where to look for test files automatically +pattern+:: pattern for automatic discovery of unit tests to be executed +output_dir+:: directory where to leave the generated reports +test_files+ overrides the combination of +test_dirs+ and +pattern+. === Options passed through the rake command line You can override the options defined in the Rcov tasks by specifying them using environment variables at the time rant is executed. RCOVPATH=/my/modified/rcov rant rcov # use the specified rcov executable RCOVOPTS="--no-callsites -x foo" rant rcov # pass those options to rcov