TAP::Parser::Result::Test - 测试结果标记。
版本 3.44
这是 TAP::Parser::Result 的子类。如果遇到测试行,则将返回此类的标记。
1..1
ok 1 - woo hooo!
此类是 TAP::Parser 系统的核心。大多数 TAP 行将是测试行,如果 $result->is_test
,那么您将可以使用许多方法。
ok
my $ok = $result->ok;
返回 ok
或 not ok
状态的文字文本。
number
my $test_number = $result->number;
返回测试的编号,即使原始 TAP 输出没有提供该编号。
description
my $description = $result->description;
返回测试的描述(如果有)。这是测试编号之后、指令之前的部分。
directive
my $directive = $result->directive;
如果测试行中存在 TODO
或 SKIP
指令,则返回 TODO
或 SKIP
。
explanation
my $explanation = $result->explanation;
如果测试具有 TODO
或 SKIP
指令,此方法将返回相应的解释(如果有)。
not ok 17 - 'Pigs can fly' # TODO not enough acid
对于上面的行,解释是 not enough acid。
is_ok
if ( $result->is_ok ) { ... }
返回一个布尔值,指示测试是否通过。请记住,对于 TODO 测试,测试始终通过。
如果测试未计划,此方法将始终返回 false。请参阅 is_unplanned
。
is_actual_ok
if ( $result->is_actual_ok ) { ... }
返回一个布尔值,指示测试是否通过,无论其 TODO 状态如何。
actual_passed
已弃用。请改用 is_actual_ok
。
todo_passed
if ( $test->todo_passed ) {
# test unexpectedly succeeded
}
如果这是一个 TODO 测试并且是 'ok' 行,此方法返回 true。否则,它将始终返回 false(无论非 TODO 测试的通过状态如何)。
这用于跟踪哪些测试意外成功。
todo_failed
# deprecated in favor of 'todo_passed'. This method was horribly misnamed.
这是一个命名错误的方法。它指示哪些 TODO 测试意外成功。现在将发出警告并调用 todo_passed
。
has_skip
if ( $result->has_skip ) { ... }
返回一个布尔值,指示此测试是否具有 SKIP 指令。
has_todo
if ( $result->has_todo ) { ... }
返回一个布尔值,指示此测试是否具有 TODO 指令。
as_string
print $result->as_string;
此方法将测试打印为字符串。它可能类似于,但不一定完全相同于原始测试行。指令将大写,某些空格可能会被修剪,并且如果原始行中没有测试编号,则会添加一个测试编号。如果您需要测试行的原始文本,请使用 raw
方法。
is_unplanned
if ( $test->is_unplanned ) { ... }
$test->is_unplanned(1);
如果测试编号大于计划测试数量,则此方法将返回 true。 无论测试是否 has_todo
,未计划的测试始终会为 is_ok
返回 false。
请注意,如果测试有尾随计划,则无法为未计划的测试设置此属性,因为我们不知道它是否在计划到达之前是未计划的。
print <<'END';
ok 1
ok 2
1..1
END