Вы можете попросить Test :: More предоставить вам свой объект-строитель:
use Test::More tests => 5;
my $plan = Test::More->builder->has_plan;
print "I'm going to run $plan tests\n";
Вам не нужно делать число тестов буквальным.Вы можете вычислить его и сохранить в переменной:
use vars qw($tests);
BEGIN { $tests = ... some calculation ... }
use Test::More tests => $tests;
print "I'm going to run $tests tests\n";
Вам не нужно заранее объявлять план:
use Test::More;
my $tests = 5;
plan( tests => $tests );
print "I'm going to run $tests tests\n";
Вы спрашивали о пропуске тестов.Если вы хотите пропустить все тесты, вы можете использовать skip_all
вместо tests
:
use Test::More;
$condition = 1;
plan( $condition ? ( skip_all => "Some message" ) : ( tests => 4 ) );
pass() for 1 .. 5;
Вы также можете сделать это, когда хотите разбить тесты на группы.Вы вычисляете количество тестов в каждой группе и суммируете их для создания плана.Позже вы знаете, сколько пропустить:
use Test::More;
my( $passes, $fails ) = ( 3, 5 );
my( $skip_passes, $skip_fails ) = ( 0, 1 );
plan( tests => $passes + $fails );
SKIP: {
skip "Skipping passes", $passes if $skip_passes;
pass() for 1 .. $passes;
}
SKIP: {
skip "Skipping fails", $fails if $skip_fails;
fail() for 1 .. $fails;
}