我想检查所有子测试是通过还是失败。如果所有子测试都通过,那么我会希望根据结果执行一些操作
use Test::More;
use warnings;
use strict;
my $test = 5;
my $test1 = 5;
subtest 'TESTCASE_001' => sub {
is( $test1, 6, "xyz111 mmdmmd11 value are same" );
is( $test, 5, "uuuuu12 mmdmmd value are same" );
};
my $string = &TESTCASE_001 ? 'pass' : 'fail';
if ( $string =~ /pass/ ) {
'delete xyz from table .............some SQL queries....';
}
else {
'do nothing ';
}
done_testing();
如何检查子测试'TESTCASE_001'是通过还是失败?
答案 0 :(得分:4)
subtest
返回true或false,具体取决于是否所有子测试都已通过。
my $subtest_ok = subtest 'TESTCASE_001' => sub {
is($test1,6, "xyz111 mmdmmd11 value are same");
is($test,5, "uuuuu12 mmdmmd value are same");
};
if ($subtest_ok) {
...;
}
else {
...;
}
同样有用的是Test::Builder->new->is_passing
如果任何测试到目前为止失败,则返回false。