NAME

prove_cover - Run tests (as prove would do) under Devel::Cover, and use Devel::CoverReport for report.

USAGE

prove_cover [options] [files or directories]

OPTIONS

Boolean options:

-v,  --verbose     Print all test lines.
-l,  --lib         Add 'lib' to the path for your tests (-Ilib).
-b,  --blib        Add 'blib/lib' and 'blib/arch' to the path for your tests
-s,  --shuffle     Run the tests in random order.
-c,  --color       Colored test output (default).
     --nocolor     Do not color test output.
     --count       Show the X/Y test count when not verbose (default)
     --nocount     Disable the X/Y test count.
-D   --dry         Dry run. Show test that would have run.
     --ext         Set the extension for tests (default '.t')
-f,  --failures    Show failed tests.
-o,  --comments    Show comments.
     --fork        Fork to run harness in multiple processes.
     --ignore-exit Ignore exit status from test scripts.
-m,  --merge       Merge test scripts' STDERR with their STDOUT.
-r,  --recurse     Recursively descend into directories.
     --reverse     Run the tests in reverse order.
-q,  --quiet       Suppress some test output while running tests.
-Q,  --QUIET       Only print summary results.
-p,  --parse       Show full list of TAP parse errors, if any.
     --directives  Only show results with TODO or SKIP directives.
     --timer       Print elapsed time after each test.
     --normalize   Normalize TAP output in verbose output
-T                 Enable tainting checks.
-t                 Enable tainting warnings.
-W                 Enable fatal warnings.
-w                 Enable warnings.
-h,  --help        Display this help
-?,                Display this help
-H,  --man         Longer manpage for prove
     --norc        Don't process default .proverc

Options that take arguments:

-I                 Library paths to include.
-P                 Load plugin (searches App::Prove::Plugin::*.)
-M                 Load a module.
-e,  --exec        Interpreter to run the tests ('' for compiled tests.)
     --harness     Define test harness to use.  See TAP::Harness.
     --formatter   Result formatter to use. See TAP::Harness.
-a,  --archive     Store the resulting TAP in an archive file.
-j,  --jobs N      Run N test jobs in parallel (try 9.)
     --state=opts  Control prove's persistent state.
     --rc=rcfile   Process options from rcfile

Coverage Report options:

--cover_db     Location of the cover_db directory
--no_report    Stop after running tests, do not generate the report itself

See also: prove.

NOTES

App::Prove usage

Both prove and prove_cover use App::Prove. The only difference is this line, added to prove_cover:

$app->{'exec'} = q{/usr/bin/perl -MDevel::Cover=-db,} . $db_path;

That said, prove_cover should be a drop-in replacement for prove, and work the same way (in the 'running tests' part).

Devel::Cover usage

Since prove_cover must run all tests under Devel::Cover, ther are run by: /usr/bin/perl -MDevel::Cover=-db,/foo/bar/cover_db. /foo/bar/cover_db is the current working directory.

Devel::CoverReport usage

At this point, there is no way to pass options to Devel::CoverReport. This may change in future release. Report will be generated as Html output, with all options set at their default values.

KNOWN ISSUES

I have observed many times, that when running many tests at once can corrupt Devel::Cover database and thus produce false statistics.

Running with -j 1 (default) should be a safe bet.

WARNING

Consider this script to be an early ALPHA. It does the job for me, so it's here.

This is my first CPAN module, so I expect that some things may be a bit rough around edges.

The plan is, to fix both those issues, and remove this warning in next immediate release.

AUTHOR

Bartłomiej Syguła <natanael@natanael.krakow.pl>

COPYRIGHT AND DISCLAIMER

Copyright 2009, Bartłomiej Syguła

This is free software. It is licensed, and can be distributed under the same terms as Perl itself.

Parts of the code for prove_cover (especially: options description) borrowed from prove command, by Andy Armstrong.

This script was inspired by prove by Andy Armstrong and Devel::Cover by Paul Johnson.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 122:

Non-ASCII character seen before =encoding in 'Bartłomiej'. Assuming UTF-8