Skip to content

Raku/tap-harness6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.