Path: | README.rant |
Last Update: | Tue Feb 01 14:02:59 +0000 2011 |
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.
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
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.
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