File: README.rant

# README.rant

Path: | README.rant
Last Update: | Wed Aug 18 17:39:46 -0600 2010

## 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

[Validate]