一連のテストを関数にして実行するのはよくあると思うんですが、その時にエラーが発生した箇所を正確に知るには、$Test::Builder::Level っていうのをインクリしてやらなきゃいけません。 例えば、以下のようなテストがあったとします。 1| use Test::More; 2| 3| sub some_test { 4| my $input = shift; 5| ok $input % 2 == 0, 'even number'; 6| } 7| 8| some_test(1); 9| some_test(2); 10| some_test(3); 11| 12| done_testing; わかりやすさのために行数を書いてみました。 これを実行した結果は以下のようになります。 not ok 1 - even number # Failed test 'even number'