Tengo un archivo de prueba simple en t /. Quiero mostrar el resumen después de ejecutar todas las pruebas. Por alguna razón, el resumen se muestra antes de que se muestren los resultados de "04.pl". ¿Cómo muestro el resumen después de ejecutar todas las pruebas?
==> t/test.t
#!/usr/bin/perl
use strict;
use warnings;
use Test::More;
plan tests => 4;
require "/home/mydir/perl5/lib/perl5/TAP/Harness.pm";
require "/home/mydir/perl5/lib/perl5/TAP/Formatter/HTML.pm";
require "/home/mydir/perl5/lib/perl5/TAP/Parser/Aggregator.pm";
my $f = TAP::Formatter::HTML->new;
$f->verbosity(-1);
$f->force_inline_css(0);
my %args = (
formatter => $f,
merge => 1,
);
my $a = TAP::Parser::Aggregator->new;
my $h = TAP::Harness->new(%args);
my @files = qw[01.pl 02.pl 03.pl 04.pl];
$a->start;
$h->aggregate_tests($a, @files);
$a->stop;
done_testing(4);
my $summary = <<"END_SUMMARY";
Total Tests: %s
Passed: %s
Failed: %s
Unexpectedly succeeded: %s
END_SUMMARY
printf $summary,
scalar $a->total,
scalar $a->passed,
scalar $a->failed,
scalar $a->todo_passed;
==> Output (in html format)
1..4
ok 1 - First
ok 1 - Second
ok 1 - Third
Total Tests: 4
Passed: 4
Failed: 0
Unexpectedly succeeded: 0
ok 1 - Four
Para ejecutar las pruebas, utilicé la utilidad "probar": / home / mydir / perl5 / bin / prove -Q --formatter = TAP :: Formatter :: HTML> output.html
Respuestas
1 para la respuesta № 1El siguiente comando ejecutará todos los archivos .t en el subdirectorio t / fusionando STDOUT y STDERR (-m) y ejecutándose silenciosamente (-Q).
prove -m -Q --state=last --formatter=TAP::Formatter::HTML t/ > output.html
La forma más sencilla de ejecutarlo en Perl es:
$output = `prove -m -Q --state=last --formatter=TAP::Formatter::HTML t/`;
Echa un vistazo a http://perldoc.perl.org/prove.html#--state para ver todas las posibilidades de --state
parámetro.