內容

名稱

Test2::Formatter - 格式化器的命名空間。

描述

這是格式化器的命名空間。這是一個空的套件。

建立格式化器

格式化器是任何具有 write($event, $num) 方法的套件或物件。

package Test2::Formatter::Foo;
use strict;
use warnings;

sub write {
    my $self_or_class = shift;
    my ($event, $assert_num) = @_;
    ...
}

sub hide_buffered { 1 }

sub terminate { }

sub finalize { }

sub supports_tables { return $BOOL }

sub new_root {
    my $class = shift;
    ...
    $class->new(@_);
}

1;

write 方法是一個方法,因此它會取得一個類別或執行個體。兩個參數是它應該記錄的 $event 物件,以及 $assert_num,這是目前斷言 (ok) 的編號,或如果此事件本身不是斷言,則為最後一個斷言的編號。斷言編號可以是 0 或更大的任何整數,在某些情況下可能未定義。

hide_buffered() 方法必須傳回一個布林值。這用於告訴緩衝子測試是否在緩衝時傳送事件。有關更多資訊,請參閱 「Test2::API 中的 run_subtest(...)」

terminatefinalize 方法是可選方法,您可以實作它們,如果要產生的格式需要處理這些情況,例如,如果您要產生 XML 並需要關閉開啟的標籤。

當事件的 terminate 方法傳回 true 時,將呼叫 terminate 方法,例如當 Test2::Event::Plan 具有 'skip_all' 計畫,或當傳送 Test2::Event::Bail 事件時。terminate 方法會傳遞單一引數,也就是觸發終止的 Test2::Event 物件。

finalize 方法始終是對格式化程式呼叫的最後一個方法,除非針對 Bail 事件呼叫 terminate。它會傳遞下列引數

如果格式化程式支援直接從 info 面向呈現表格資料,則 supports_tables 方法應為 true。這是一個較新的功能,許多較舊的格式化程式可能不支援。如果不支援,格式化程式會改為呈現 detail,而不是 table 資料。

在建構根格式化程式時,會使用 new_root 方法。預設值是委派給一般的 new() 方法,大多數格式化程式可以忽略它。

Test2::API::Stack 首次初始化根集線器時,會呼叫 new_root 方法。大多數格式化程式會簡單地呼叫此 $class->new,這是預設行為。不過,有些格式化程式可能希望在建構根格式化程式時採取額外動作,這時就可以這麼做。

原始程式碼

Test2 的原始程式碼存放庫位於 http://github.com/Test-More/test-more/

維護人員

Chad Granum <exodist@cpan.org>

作者

Chad Granum <exodist@cpan.org>

著作權

著作權所有 2020 Chad Granum <exodist@cpan.org>。

此程式是自由軟體;您可以在與 Perl 相同的條款下重新散布或修改它。

請參閱 http://dev.perl.org/licenses/