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(...)"。
terminate
和 finalize
方法是可选方法,如果您正在生成的格式需要处理这些情况,您可以实现它们,例如,如果您正在生成 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/ 找到。
版权所有 2020 Chad Granum <[email protected]>。
本程序是自由软件;您可以根据与 Perl 本身相同的条款重新发布和/或修改它。
参见 https://dev.perl5.cn/licenses/