Help language development. Donate to The Perl Foundation

App::Prove6 cpan:LEONT last updated on 2019-03-06


Build Status


prove6 - Run tests through a TAP harness.


prove6 [options] [files or directories]

Boolean options:

-v,  --verbose         Print all test lines.
-l,  --lib             Add 'lib' to the path for your tests (-Ilib).
     --shuffle         Run the tests in random order.
     --ignore-exit     Ignore exit status from test scripts.
     --reverse         Run the tests in reverse order.
-q,  --quiet           Suppress some test output while running tests.
-Q,  --QUIET           Only print summary results.
     --timer           Print elapsed time after each test.
     --trap            Trap Ctrl-C and print summary on interrupt.
     --help            Display this help
     --version         Display the version

Options that take arguments:

-I,  --incdir          Library paths to include.
-e,  --exec            Interpreter to run the tests ('' for compiled
     --ext             Set the extensions for tests (default <t t6>)
     --harness         Define test harness to use.  See TAP::Harness.
     --reporter        Result reporter to use. See REPORTERS.
-j,  --jobs            Run N test jobs in parallel (try 9.)
     --err=stderr      Direct the test's $*ERR to the harness' $*ERR.
     --err=merge       Merge test scripts' $*ERR with their $*OUT.
     --err=ignore      Ignore test script' $*ERR.


Default Test Directory

If no files or directories are supplied, prove6 looks for all files matching the pattern t/*.t.

Colored Test Output

Colored test output is the default, but if output is not to a terminal, color is disabled.

Color support requires Terminal::ANSIColor on Unix-like platforms. If the necessary module is not installed colored output will not be available.

Exit Code

If the tests fail prove6 will exit with non-zero status.


Normally you can just pass a list of Perl 6 tests and the harness will know how to execute them. However, if your tests are not written in Perl 6 or if you want all tests invoked exactly the same way, use the -e switch:

prove6 -e='/usr/bin/ruby -w' t/
prove6 -e='/usr/bin/perl -Tw -mstrict -Ilib' t/
prove6 -e='/path/to/my/customer/exec'



The --trap option will attempt to trap SIGINT (Ctrl-C) during a test run and display the test summary even if the run is interrupted


prove6 introduces a separation between "options passed to the perl which runs prove" and "options passed to the perl which runs tests"; this distinction is by design. Thus the perl which is running a test starts with the default $*REPO. Additional library directories can be added via the PERL6LIB environment variable, via -Ifoo in PERL6OPT or via the -Ilib option to prove6.