rcov(1) create a code coverage report for Ruby tests

SYNOPSIS

rcov [options] <script1.rb> [script2.rb] [-- --extra-options]

DESCRIPTION

rcov is a code coverage tool for Ruby. It creates code coverage reports showing the unit test coverage of the target code.

rcov does "statement coverage", also referred to as "C0 coverage analysis". It tests, if each line of the source code has been executed.

rcov is typically used to find the areas of a program that have not been sufficiently tested. It reports, what code has not been run by any test cases.

It can easily be integrated into build processes (e.g. with rake or rant) and creates the coverage reports in HTML or text format.

OPTIONS

-o, --output
Destination directory.
-I, --include PATHS
Prepend PATHS to $: (colon separated list)
--[no-]comments
Mark all comments by default. (default: --no-comments)
--test-unit-only
Only trace code executed inside TestCases.
--spec-only
Only trace code executed inside RSpec specs.
-n, --no-color
Create colorblind-safe output.
-i, --include-file PATTERNS
Generate info for files matching a pattern (comma-separated regexp list)
-x, --exclude PATTERN
Don't generate info for files matching a pattern (comma-separated regexp list)
--exclude-only PATTERNS
Skip info only for files matching the given patterns.
--rails
Skip config/, environment/ and vendor/.
--[no-]callsites
Show callsites in generated XHTML report. (somewhat slower; disabled by default)
--[no-]xrefs
Generate fully cross-referenced report. (includes --callsites)
-p, --profile
Generate bogo-profiling info.
-r, --range RANGE
Color scale range for profiling info (dB).
-a, --annotate
Generate annotated source code.
-T, --text-report
Dump detailed plain-text report to stdout. (filename, LoC, total lines, coverage)
-t, --text-summary
Dump plain-text summary to stdout.
--text-counts
Dump execution counts in plaintext.
--text-coverage
Dump coverage info to stdout, using ANSI color sequences unless -n.
--gcc
Dump uncovered line in GCC error format.
--aggregate FILE
Aggregate data from previous runs in FILE. Overwrites FILE with the merged data. FILE is created if necessary.
-D, --text-coverage-diff [FILE]
Compare code coverage with saved state in FILE, defaults to coverage.info. Implies --comments.
--save [FILE]
Save coverage data to FILE, for later use with rcov -D. (default: coverage.info)
--[no-]html
Generate HTML output. (default: --html)
--css relative/path/to/custom.css
Use a custom CSS file for HTML output. Specified as a relative path.
--sort CRITERION
Sort files in the output by the specified field (name, loc, coverage)
--sort-reverse
Reverse files in the output.
--threshold INT
Only list files with coverage < INT %. (default: 101)
--failure-threshold [INT]
Fail if the coverage is below the threshold (default: 100)
--charset CHARSET
Charset used in Content-Type declaration of HTML reports.
--only-uncovered
Same as --threshold 100
--replace-progname
Replace $0 when loading the .rb files.
-w
Turn warnings on (like ruby).
--no-rcovrt
Do not use the optimized C runtime. (will run 30-300 times slower)
--diff-cmd PROGNAME
Use PROGNAME for --text-coverage-diff. (default: diff)
-h, --help
Show extended help message
--report-cov-bug SELECTOR
Report coverage analysis bug for the method specified by SELECTOR (format: Foo::Bar#method, A::B.method)
--version
Show version

EXAMPLES

To simply run rcov on all ruby files in the current directory and create a HTML coverage report in ./coverage:

rcov *.rb

To run the tests in ./tests, include ./lib, only take care of code executed from TestCases and output a summary to STDOUT:

rcov --test-unit-only -t -I./lib ./tests/*.rb

AUTHOR

The manpage is provided by Micah Anderson <[email protected]> as part of the Debian's rcov package. Upstream author of rcov is Mauricio Fernandez <[email protected]>.

All the option descriptions have mainly be taken from the help output of rcov.