2

私が書いた Perl モジュールでテスト ファイルを実行していますが、他のテストが正常に実行された後にのみ実行されるテストが必要です (ただし、それらは別のファイルに保持されます)。

Test::Builderを見ていましたが、ファイル間のテストには対応していないと思います。

なぜ私がこれをやりたいのかを説明するために。モジュール内のすべてのサブルーチンのテスト ファイルがあります。これらのサブルーチンのいくつかは、テスト目的で複製するのが難しい他のサブルーチンから大きなハッシュを渡されます。

したがって、テスト可能なハッシュをハードコーディングするために数時間を費やす代わりに、そのハッシュが生成されたサブルーチンがテストされた後にのみ、コードからハッシュが渡されるようにしたいと考えています。

それが理にかなっていることを願っています!テストを特定の順序で実行するだけのスクリプトを作成することもできますが、Perl テスト モジュールには、まだ見たことのない機能がすでにあるのではないかと考えました。モジュールの使用に関しては、理想的には「make test」ビットをいじる必要なくテストを実行できるようにしたいと考えています。

4

1 に答える 1

2

Perl テスト ハーネスは、テスト ファイルをアルファベット順に実行しているようです。これが、非常に多くの CPAN ディストリビューションが数字で始まるテスト ファイルを持っている理由です。作成者がテスト実行の順序を制御できるようにするためです。たとえば、誰かがこれらのテストを で実行すると、それは壊れprove -sます。

一般に、テスト ファイルは完全に独立したテスト単位と見なされるべきです。他のテストに影響を与えることなく、すべてのテストを任意の順序で実行できる必要があります。2 つのテストが相互に依存している場合、それらは同じファイルにある必要があります。

これらのテストを別々のファイルにすることに熱心な理由を説明していません。おそらく、それはあなたが疑問に思うべき仮定です。

于 2013-03-08T14:24:02.140 に答える