NAME
TAP
DESCRIPTION
An asynchronous TAP framework written in Raku.
SYNOPSIS
use TAP;
my $harness = TAP::Harness.new(|%args);
$harness.run(@tests);
METHODS
Class Methods
new
my %args = jobs => 1, err => 'ignore';
my $harness = TAP::Harness.new( |%args );
The constructor returns a new TAP::Harness object.
It accepts an optional hash whose allowed keys are:
volume
Default value: Normal
Possible values: Silent ReallyQuiet Quiet Normal Verbose
jobs
The maximum number of parallel tests to run.
Default value: 1
Possible values: An Int
timer
Append run time for each test to output.
Default value: False
Possible values: True False
err
Error reporting configuration.
Default value: stderr
Possible values: stderr ignore merge Supply IO::Handle
| Value | Definition |
|---|
stderr | Direct the test's $*ERR to the harness' $*ERR |
ignore | Ignore the test scripts' $*ERR |
merge | Merge the test scripts' $*ERR into their $*OUT |
Supply | Direct the test's $*ERR to a Supply |
IO::Handle | Direct the test's $*ERR to an IO::Handle |
ignore-exit
If set to True will instruct TAP::Parser to ignore exit and wait for status from test scripts.
Default value: False
Possible values: True False
trap
Attempt to print summary information if run is interrupted by SIGINT (Ctrl-C).
Default value: False
Possible values: True False
handlers
Default value: TAP::Harness::SourceHandler::Raku
Possible values: TAP::Harness::SourceHandler::Raku
TAP::Harness::SourceHandler::Exec
| Language | Handler |
|---|
| Raku | TAP::Harness::SourceHandler::Raku.new |
| Perl 5 | TAP::Harness::SourceHandler::Exec.new('perl') |
| Ruby | TAP::Harness::SourceHandler::Exec.new('ruby') |
| Python | TAP::Harness::SourceHandler::Exec.new('python') |
Instance Methods
run
$harness.run(@tests);
Accepts an array of @tests to be run. This should generally be the names of test files.
TODO
These features are currently not implemented but are considered desirable:
- Rule based parallel scheduling
- Source Handlers other than
::Raku - Better documentation
LICENSE
You can use and distribute this module under the terms of the The Artistic License 2.0. See the LICENSE file included in this distribution for complete details.