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"; } }