检查是否所有子测试都通过TEST :: MORE

时间:2014-08-19 05:12:55

标签: perl

我想检查所有子测试是通过还是失败。如果所有子测试都通过,那么我会希望根据结果执行一些操作

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'是通过还是失败?

1 个答案:

答案 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。