The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Test2::Tools::HarnessTester - Run events through a harness for a summary

DESCRIPTION

This tool allows you to process events through the Test2::Harness auditor. The main benefit here is to get a pass/fail result, as well as counts for assertions, failures, and errors.

SYNOPSIS

use Test2::V0;
use Test2::API qw/intercept/;
use Test2::Tools::HarnessTester qw/summarize_events/;

my $events = intercept {
    ok(1, "pass");
    ok(2, "pass gain");
    done_testing;
};

is(
    summarize_events($events),
    {
        # Each of these is the negation of the other, no need to check both
        pass       => 1,
        fail       => 0,

        # The plan facet, see Test2::EventFacet::Plan
        plan       => {count => 2},

        # Statistics
        assertions => 2,
        errors     => 0,
        failures   => 0,
    }
);

EXPORTS

$summary = summarize_events($events)

This takes an arrayref of events, such as that produced by intercept {...} from Test2::API. The result is a hashref that summarizes the results of the events as processed by Test2::Harness, specifically the Test2::Harness::Auditor::Watcher module.

Fields in the summary hash:

pass => $BOOL
fail => $BOOL

These are negatives of eachother. These represent the pass/fail state after processing the events. When one is true the other should be false. These are normalized to 1 and 0.

plan => $HASHREF

If a plan was provided this will have the Test2::EventFacet::Plan facet, but as a hashref, not a blessed instance.

Note: This is reference to the original data, not a copy, if you modify it you will modify the event as well.

assertions => $INT

Count of assertions made.

errors => $INT

Count of errors seen.

failures => $INT

Count of failures seen.

$path = make_example_dir()

This will create a temporary directory with 't', 't2', and 'xt' subdirectories each of which will contain a single passing test.

This is re-exported from App::Yath::Tester.

SOURCE

The source code repository for Test2-Harness can be found at http://github.com/Test-More/Test2-Harness/.

MAINTAINERS

Chad Granum <exodist@cpan.org>

AUTHORS

Chad Granum <exodist@cpan.org>

COPYRIGHT

Copyright 2020 Chad Granum <exodist7@gmail.com>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://dev.perl.org/licenses/