11

我正在使用Test::More模块。如果我有一个.t包含一堆测试的文件(主要使用ok());第一次失败后如何使测试用例停止。我现在看到的是如果第一个 ok 失败;后续ok()案件仍在审理中。

我看着 usingTest::More::Bail_OUT;但这将停止所有测试停止(意味着.t我拥有的其他文件),而不仅仅是测试停止特定文件。

谢谢!

4

2 回答 2

11

Test::More POD 提到Test::Most是为了更好地控制。也许die_on_fail做你需要的。

于 2013-05-21T16:30:09.643 回答
9

呼叫done_testing()exit

ok( first_test(), 'first test' ) or done_testing, exit;
ok( second_test(), 'second test' );
...

在其他情况下,您可以skip在带有SKIP标签的块内使用该函数。

SKIP: {
    ok( first_test ) or skip "useless to run the next 4 tests", 4;
    ok( second_test );
    ok( third_test );
    ok( fourth_test );
    ok( fifth_test );
}
ok( sixth_test );
done_testing();

的主要优点skip/SKIP是它在旧版本的Test::More.

于 2013-05-21T16:26:11.067 回答