2013-05-21 8 views
9

私はTest :: Moreモジュールを使用しています。もし私がたくさんのテスト(主にok()を使って)を持つ.tファイルを持っていたら;どのように最初の失敗の後にテストケースを停止させることができますか?私が今見ているのは、最初のokが失敗した場合です。その後のok()ケースはまだ実行されています。Perlテスト:最初の失敗後に1つのファイルでテストを停止する方法

私はTEST ::詳細:: Bail_OUTを使用して見て。しかし、それは単に特定のファイルを停止するテストではなく、すべてのテストが停止するのを止めます(私が持っている他の.tファイルを意味します)。

ありがとうございます!

答えて

8

コールdone_testing()exit

ok(first_test(), 'first test') or done_testing, exit; 
ok(second_test(), 'second test'); 
... 

は、他のケースでは、あなたはSKIPラベルでブロック内skip機能を使用することができます。

SKIP: { 
    ok(first_test) or skip "useless to run the next 4 tests", 4; 
    ok(second_test); 
    ok(third_test); 
    ok(fourth_test); 
    ok(fifth_test); 
} 
ok(sixth_test); 
done_testing(); 

skip/SKIPの主な利点は、それがTest::Moreの古いバージョンではサポートされていることです。

+0

'skip'の主な利点は、最後のテストだけが失敗していると主張していないことです。 – ikegami

+0

単に「死んで」いけないのはなぜですか? – darch

8

Test::More PODは、よりよい制御のためのTest::Mostに言及しています。おそらくdie_on_failはあなたが必要とするものを行います。

関連する問題