内容

名称

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 方法应为真。这是一个较新的功能,许多较旧的格式化程序可能不支持它。如果不受支持,格式化程序将回退到渲染 detail 而不是 table 数据。

new_root 方法用于构建根格式化程序。默认情况下,只需委托给常规的 new() 方法,大多数格式化程序可以忽略此方法。

Test2::API::Stack 第一次初始化根中心时,会调用 new_root 方法。大多数格式化程序只需让此调用 $class->new,这是默认行为。但是,某些格式化程序可能希望在构建根格式化程序期间采取额外措施,它们可以在此处执行此操作。

来源

Test2 的源代码存储库可以在 http://github.com/Test-More/test-more/ 找到。

维护者

Chad Granum <[email protected]>

作者

Chad Granum <[email protected]>

版权

版权所有 2020 Chad Granum <[email protected]>。

本程序是自由软件;您可以根据与 Perl 本身相同的条款重新发布和/或修改它。

参见 https://dev.perl5.cn/licenses/