/ / Generar informes HTML utilizando TAP :: Formatter :: HTML y prove - perl

Genere informes HTML usando TAP :: Formatter :: HTML y prove - perl

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 № 1

El 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.