App-Test-Tapat
view release on metacpan or search on metacpan
lib/App/Test/Tapat.pm view on Meta::CPAN
my ($self, $file) = @_;
$file = fileparse($file);
my ($script, $test_id) = split /_/, $file;
$self->script($script) || confess "Not sure how to assign script.";
$self->test_id($test_id) || confess "Not sure how to assign test_id.";
$self->test_name($file) || confess "Not sure how to assign filename.";
}
=head2 parsetest
This is where the TAP from your test gets parsed. A timer is created here as
well.
=cut
sub parsetest {
use TAP::Parser qw/all/;
use TAP::Parser::Aggregator qw/all/;
use Term::ANSIColor;
use File::Basename;
my ($self, $file) = @_;
my $planned = 0;
my $aggregate = TAP::Parser::Aggregator->new;
# Create parser object
my $parser = TAP::Parser->new( { source => $file } );
$aggregate->start(); # start timer
$aggregate->add($file, $parser);
while ( my $result = $parser->next ) {
my $out = $result->as_string;
print "$out\n";
if ($result->is_plan) {
$planned = $result->tests_planned;
}
}
$aggregate->stop(); # stop timer
my $elapsed = $aggregate->elapsed_timestr();
my $failed = $parser->failed;
my $passed = $parser->passed;
# If we ran all the tests, and they all passed
if ($parser->is_good_plan && ($passed - $failed == $planned)) {
print color 'green';
print "\n--==[ Passed all our planned tests, updating db for $self->{test_id} ]==--\n";
} else {
( run in 0.443 second using v1.01-cache-2.11-cpan-49f99fa48dc )