1..4
ok 1
ok 2
not ok 3
# Failed test at t/my_test.t line 7.
ok 4
####
my $tap = qx|./compiled_test_app|;
my $parser = TAP::Parser->new( { tap => $tap } );
####
use strict;
use warnings;
use Test::More;
use TAP::Parser;
my $tap = <<'END_TAP';
1..4
ok 1
ok 2
not ok 3
# Failed test at t/my_test.t line 7.
ok 4
END_TAP
my $parser = TAP::Parser->new( { tap => $tap } );
my $plan = $parser->next;
die "not a plan" unless $plan->is_plan;
plan( tests => $plan->tests_planned );
while ( my $result = $parser->next ) {
if ( $result->is_test ) {
if ( $result->is_ok ) {
pass( $result->as_string );
}
else {
fail( $result->as_string );
}
}
elsif ( $result->is_comment ) {
print $result->as_string;
}
else {
die "Can't figure out what to do with $result";
}
}
####
1..4
ok 1 - ok 1
ok 2 - ok 2
not ok 3 - not ok 3
# Failed test 'not ok 3'
# at t/tap_wrapper.t line 28.
# Failed test at t/my_test.t line 7.ok 4 - ok 4
# Looks like you failed 1 test of 4.
####
use Test::ParseTAP;
my $tap = qx|./compiled_test|;
parse_tap($tap);