我正在使用@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());
}
}
如何让 JUnit 也显示this.parameter
测试结果超时?
这是一个非常简单的示例测试类,它显示了这个问题:
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:1000 毫秒后测试超时”。在这种情况下,我希望始终获得“超时值 42”。