を使用して JUnit 4 テストを実行しています@RunWith(value = Parameterized.class)
。これは問題なく動作します。ただし、34 個のテストのいずれかがタイムアウトすると、メッセージのみが表示されますjava.lang.Exception: test timed out after 15000 milliseconds
。テストのパラメータも表示したいです。
私は以下のコードのようにそれをやろうとさえしました(ほとんどの場合、これは恐ろしい解決策です。メッセージをいつでも表示できるかどうかを確認したかっただけです)が、うまくいきませんでした。上記のメッセージが表示されました。
private String parameter;
@Test(timeout = 15000)
public void solveAll() {
try {
// ... do something that might take a long time
}
catch (Throwable e) {
Assert.fail(this.parameter + " failed! Because of " + e.getMessage());
}
}
this.parameter
テストの結果がタイムアウトになったときにJUnitも表示するにはどうすればよいですか?
この問題を示す非常に単純なテスト クラスの例を次に示します。
public class ShowMyMessageTest {
@Test(timeout=1000)
public void test() {
try {
Thread.sleep(3000);
}
catch (Throwable e) {
Assert.fail("Timeout reached with value 42");
}
}
}
これによりShowMyMessageTest
、予想される「値42でタイムアウトに達しました」というメッセージが表示されることもあれば、「java.lang.Exception: test timed out after 1000 milliseconds」というメッセージしか表示されないこともあります。この場合、常に「値42でタイムアウトに達しました」を取得したいと思います。