目錄

名稱

TAP::Parser::Aggregator - 聚合 TAP::Parser 結果

版本

版本 3.44

概要

use TAP::Parser::Aggregator;

my $aggregate = TAP::Parser::Aggregator->new;
$aggregate->add( 't/00-load.t', $load_parser );
$aggregate->add( 't/10-lex.t',  $lex_parser  );

my $summary = <<'END_SUMMARY';
Passed:  %s
Failed:  %s
Unexpectedly succeeded: %s
END_SUMMARY
printf $summary,
       scalar $aggregate->passed,
       scalar $aggregate->failed,
       scalar $aggregate->todo_passed;

說明

TAP::Parser::Aggregator 收集解析器物件,並允許報告/查詢其聚合結果。

方法

類別方法

new

my $aggregate = TAP::Parser::Aggregator->new;

傳回新的 TAP::Parser::Aggregator 物件。

實例方法

add

$aggregate->add( $description => $parser );

$description 通常是測試檔名(但僅限於慣例)。它用作唯一識別碼(例如,請參閱 "parsers")。重複使用描述會導致嚴重錯誤。

$parserTAP::Parser 物件。

parsers

my $count   = $aggregate->parsers;
my @parsers = $aggregate->parsers;
my @parsers = $aggregate->parsers(@descriptions);

在無引數的純量內容中,此方法會傳回聚合的解析器數量。在無引數的清單內容中,會傳回按新增順序排列的解析器。

如果給定 @descriptions,這些會對應於 add() 方法中每個呼叫所使用的鍵。在清單內容中傳回請求的解析器陣列(按請求順序排列),或在純量內容中傳回陣列參考。

請求未知識別碼會導致嚴重錯誤。

descriptions

取得按新增至聚合器的順序排列的描述陣列。

start

在將任何結果新增至聚合器之前立即呼叫 start。它會在其他時間記錄測試執行的開始時間。

stop

在將所有測試結果新增至聚合器後立即呼叫 stop

elapsed

elapsed 會傳回表示聚合測試執行時間的 Benchmark 物件。為了讓 elapsed 有效,您必須在執行測試之前呼叫 start,並在執行測試後立即呼叫 stop

elapsed_timestr

傳回表示 elapsed() 傳回的執行時間的格式化字串。這讓呼叫者不必擔心 Benchmark。

all_passed

如果所有測試都通過且未偵測到任何解析錯誤,則傳回 true。

get_status

取得描述聚合測試狀態的單一字詞。根據測試結果,會傳回「PASS」、「FAIL」或「NOTESTS」。CPAN::Reporter 會了解此記號。

摘要方法

如果在純量內容中呼叫下列各方法,每個方法都會傳回對應測試的總數。如果在清單內容中呼叫,會傳回包含對應測試的解析器描述(請參閱 add 以取得描述說明)。

例如,找出意外成功了多少個測試(不應該通過的待辦測試通過了)

my $count        = $aggregate->todo_passed;
my @descriptions = $aggregate->todo_passed;

請注意,waitexit 是每個測試的等待和退出狀態的總和。這些值只會加總,以提供一個真實的值,如果其中任何一個是非零值。

total

my $tests_run = $aggregate->total;

傳回執行的測試總數。

has_problems

if ( $parser->has_problems ) {
    ...
}

has_errors 相同,但如果任何待辦測試意外成功,也會傳回 true。這更類似於「警告」。

has_errors

if ( $parser->has_errors ) {
    ...
}

如果任何解析器失敗,則傳回 true。這包括

todo_failed

# deprecated in favor of 'todo_passed'.  This method was horribly misnamed.

這是一個命名錯誤的方法。它表示意外成功的待辦測試。現在會發出警告並呼叫 todo_passed

另請參閱

TAP::Parser

TAP::Harness