6

ライブラリのアップグレード (easymock 2.2 -> 2.4) のおかげで、テストがロックアップし始めています。個々のテストでタイムアウトを取りたいのですが、それらすべてです。アイデアは、ロックされたテストを特定し (現在推測しています)、それらを修正することです。

これは、できればスイート全体のレベルで可能ですか? 400 個のテストがあり、これを各メソッドまたは各クラスで行うには時間がかかります。

4

4 に答える 4

5

suite タグには、time-out 属性を含めることができます。このタイムアウトは、すべてのテスト メソッドのデフォルトとして使用されます。

このデフォルトのタイムアウトは、テスト メソッドごとにオーバーライドできます。

于 2008-12-08T21:32:15.557 に答える
2

非常に遅いですが、実行jstack -l <PID>するとスタックダンプが得られます。これを調べて、スタックしている呼び出しを見つけることができます。スタックしていることを確認するために、数回サンプリングすることをお勧めします。

于 2010-09-30T03:03:06.667 に答える
2

スイート レベルが間違ったアプローチであることが判明した場合 (つまり、タイムアウト制限であまりにも多くのメソッドをマークすることになるため、「ネットワークが広すぎる」)、カスタムIAnnotationTransformer を定義する必要があります。 @Test アノテーションを変更する機会があります (たとえば、setTimout() メソッドを使用)。
(setTimout(0)タイムアウト ディレクティブをキャンセルします)

于 2008-12-08T21:47:32.123 に答える
1

「@Test」を検索して「@Test(timeout=)」に置き換えることができます。ロックされたテストを見つけるために機能し、その後元に戻すことができます。

于 2008-12-08T21:51:21.930 に答える