你可以問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;
}
謝謝,我可以得到這個參數以外的模塊?我想在函數skip中使用它(跳過$ why,$ how_many) – 2010-09-08 17:57:37
我不認爲你可以直接使用它,但爲什麼不只是'使用Test :: More',然後再調用'plan()'呢?這樣你可以在腳本中存儲一個變量的測試數量? – zigdon 2010-09-08 18:21:58
@oraz:你可以用'$ tests = Test :: Builder-> new-> has_plan'獲取你計劃的測試數量 - 參見[Test :: Builder]的文檔(http://search.cpan .ORG /的perldoc?測試::生成器)。但是如果你想獲得這個值,所以你知道有多少跳過,你應該真的調用'skip_all'。 – Ether 2010-09-08 18:45:57