内容

名称

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;

返回 oknot ok 状态的文字文本。

number

my $test_number = $result->number;

返回测试的编号,即使原始 TAP 输出没有提供该编号。

description

my $description = $result->description;

返回测试的描述(如果有)。这是测试编号之后、指令之前的部分。

directive

my $directive = $result->directive;

如果测试行中存在 TODOSKIP 指令,则返回 TODOSKIP

explanation

my $explanation = $result->explanation;

如果测试具有 TODOSKIP 指令,此方法将返回相应的解释(如果有)。

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