Andy Armstrong > Test-Harness-3.00 > TAP::Harness

Download:
Test-Harness-3.00.tar.gz

Dependencies

Annotate this POD (1)

Website

CPAN RT

New  24
Open  21
View/Report Bugs
Module Version: 3.00   Source   Latest Release: Test-Harness-3.35

NAME ^

TAP::Harness - Run test scripts with statistics

VERSION ^

Version 3.00

DESCRIPTION ^

This is a simple test harness which allows tests to be run and results automatically aggregated and output to STDOUT.

SYNOPSIS ^

 use TAP::Harness;
 my $harness = TAP::Harness->new( \%args );
 $harness->runtests(@tests);

METHODS ^

Class Methods

new

 my %args = (
    verbose => 1,
    lib     => [ 'lib', 'blib/lib' ],
 )
 my $harness = TAP::Harness->new( \%args );

The constructor returns a new TAP::Harness object. It accepts an optional hashref whose allowed keys are:

Any keys for which the value is undef will be ignored.

Instance Methods

runtests

  $harness->runtests(@tests);

Accepts and array of @tests to be run. This should generally be the names of test files, but this is not required. Each element in @tests will be passed to TAP::Parser::new() as a source. See TAP::Parser for more information.

Tests will be run in the order found.

If the environment variable PERL_TEST_HARNESS_DUMP_TAP is defined it should name a directory into which a copy of the raw TAP for each test will be written. TAP is written to files named for each test. Subdirectories will be created as needed.

Returns a TAP::Parser::Aggregator containing the test results.

aggregate_tests

  $harness->aggregate_tests( $aggregate, @tests );

Tests will be run in the order found.

jobs

Returns the number of concurrent test runs the harness is handling. For the default harness this value is always 1. A parallel harness such as TAP::Harness::Parallel will override this to return the number of jobs it is handling.

fork

If true the harness will attempt to fork and run the parser for each test in a separate process. Currently this option requires Parallel::Iterator to be installed.

SUBCLASSING ^

TAP::Harness is designed to be (mostly) easy to subclass. If you don't like how a particular feature functions, just override the desired methods.

Methods

TODO: This is out of date

The following methods are ones you may wish to override if you want to subclass TAP::Harness.

summary

  $harness->summary( \%args );

summary prints the summary report after all tests are run. The argument is a hashref with the following keys:

make_parser

Make a new parser and display formatter session. Typically used and/or overridden in subclasses.

    my ( $parser, $session ) = $harness->make_parser;

finish_parser

Terminate use of a parser. Typically used and/or overridden in subclasses. The parser isn't destroyed as a result of this.

REPLACING ^

If you like the prove utility and TAP::Parser but you want your own harness, all you need to do is write one and provide new and runtests methods. Then you can use the prove utility like so:

 prove --harness My::Test::Harness

Note that while prove accepts a list of tests (or things to be tested), new has a fairly rich set of arguments. You'll probably want to read over this code carefully to see how all of them are being used.

SEE ALSO ^

Test::Harness

syntax highlighting: