テスト数を増やさずに Perl の Test::Deep::cmp_deeply を使用するにはどうすればよいですか?
質問
のように見えます Test::Deep
にインスピレーションを得た is_deeply
. 。私の質問はどうやって作るかです cmp_deeply
テスト単独ではなくテストの一部ですか?私のテストのリストには8つしか記載されていないため、使用するたびに cmp_deeply
, 、これはテストとしてカウントされ、実際のテスト数は 11 になります (呼び出したので)。 cmp_deeply
3 回) 関数が 8 つしかない場合。検査数を増やしたくありません。より現実的な解決策はあるのでしょうか?
解決
あなたが代わりにeq_deeply
を使用する必要があります:
このは
cmp_deeply()
と同じです それだけでtrueまたはfalseを返します除きます。 それは診断を作成しません...
他のヒント
実行できることは数多くありますが、テストの詳細を知らなければ、どれが最も適切であるかを判断するのは困難です。
特定のテスト数を計画しないでください。
use Test::More; all( cmp_deeply($got0, $expected0), cmp_deeply($got1, $expected1), cmp_deeply($got2, $expected2) ); # ... your other 7 tests done_testing(); # signals that we're all done.. exiting normally.
実行されるテストの数を動的に決定します。これは、複雑さ (および必要なテストの数) が事前にわからない、深くて動的な構造をテストする場合に意味があります。
use Test::More; use Test::Deep; # perhaps this is in some sort of loop? cmp_deeply($got0, $expected0); $numTests++; cmp_deeply($got1, $expected1); $numTests++; cmp_deeply($got2, $expected2); $numTests++; # ... your other 7 tests # TAP output must be either at the beginning or end of all output plan tests => $numTests + 7; # no more tests here! exit;
所属していません StackOverflow