2012-04-21 11 views
0

私はt /で簡単なテストファイルを持っています。私はすべてのテストを実行した後に要約を表示したい。なんらかの理由で、「04.pl」の結果が表示される前に要約が表示されます。すべてのテストを実行した後に要約を表示するにはどうすればよいですか?TAP :: Formatter :: HTMLを使ってHTMLレポートを生成して証明する

output.html /ホーム/ mydirの/ perl5の/ binに/証明-Q --formatter = TAP ::フォーマッタ:: HTML>:

==> 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 

は、テストを実行するために、私は '証明' ユーティリティを使用しました

答えて

1

次のコマンドは、STDOUTとSTDERR(-m)をマージして静かに(-Q)実行しているt /サブディレクトリ内のすべての.tファイルを実行します。

prove -m -Q --state=last --formatter=TAP::Formatter::HTML t/ > output.html 

Perlでそれを実行するための最も単純な方法は次のとおりです。

$output = `prove -m -Q --state=last --formatter=TAP::Formatter::HTML t/`; 

--stateパラメータのすべての可能性を見るためにhttp://perldoc.perl.org/prove.html#--stateを見てみましょう。

+0

お返事ありがとうございます。グラフィカルな出力でHTMLレポートを生成するのに同じコマンドを使用しました。これは問題ではありません。実際の問題は次のとおりです。テスト#4を実行する前に要約が表示されます。 – user1348366

+0

@ user1348366 - 私の更新された回答を参照 –

+0

あなたはproveを使うために外に出る必要はありません。モジュール[App :: prove](https://www.metacpan.org/module/App::prove)から呼び出すことができます。 –

関連する問題