Perl测试:如何在第一次失败后停止在单个文件中进行测试

时间:2013-05-21 16:22:23

标签: perl testing

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

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

谢谢!

2 个答案:

答案 0 :(得分:10)

Test::More POD提到Test::Most以便更好地控制。也许die_on_fail可以满足您的需求。

答案 1 :(得分: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的旧版本支持它。