-1

TAP :: Harnessを介していくつかのテストを実行しており、TAPパーサーからすべての個別の結果を取得しようとしています。私がすることは最初にテストを実行することです:

my $harness = TAP::Harness->new( { verbosity => 1, lib => [ 'blib/lib' ] } );
my $aggregator = $harness->runtests( @tests );

これはうまくいきます。次に、TAP::Parserのドキュメントに従って結果を取得しようとします。

my @results;

my @parsers = $aggregator->parsers;
foreach my $prsr( @parsers ) { 
    while( my $result = $prsr->next ) { 
        push @results, { type => $result->type,
                         ok   => $result->ok,
                         text => $result->as_string };
    }
}

ただし、これにより@results空の配列になります。

個々のパーサーオブジェクトをDumper使用すると、テスト結果が正常に解析されたことがわかります。

  bless( {
           'tests_run' => 5,
           'actual_passed' => [
                                1,
                                2,
                                3,
                                4,
                                5
                              ],
  ....etc

オブジェクトからテスト結果を取得する方法がわかりません。

4

1 に答える 1

0

さて、個々のパーサーを手動で作成して実行することで、必要なものを取得することができました。

    foreach my $test( @tests ) { 
        my @test_results;
        my $parser = TAP::Parser->new( { source => $test } );
        while( my $result = $parser->next ) { 
            push @test_results, 
              { text => $result->as_string,
                ...
              }
        }

次に、手動で集計を実行できると思いますが、単一のTAP::Harnessインスタンスから集計結果と実際のTAPデータを取得する方法があることを望んでいます。しかし、私はそれを理解することができませんでした。

于 2013-01-21T04:31:03.333 に答える