当JUnit测试收到意外 RuntimeException时,NetBeans测试结果选项卡会显示失败的测试名称,后跟堆栈跟踪。
实施例
someFailedTest导致ERROR:at(堆栈跟踪线从这里开始)
没有尽可能有用。
虽然堆栈跟踪确实可以让我们找到问题发生的位置,但如果NB还显示任何伴随异常的消息,那将会很好。 (例如" x必须> 0但是-2和#34;或者其他。)
据我所知,它似乎并没有提供详细信息。有没有办法显示我遗漏的异常细节?
我可以使用try / catch或错误日志,但是有更好的方法吗?
这是一个(假)"测试"的例子。它在Eclipse中清楚地显示了一条消息,但在NB中没有。任何见解欢迎......是的,我知道这不是例外,但它是同一类型的问题。
@Test
public void testTest() {
String file = "test";
File f = new File("../" + file);
if (!f.exists()) {
Assert.fail("File was not found at " + file);
}
}
编辑... 是的,现在有点困惑 - 我已经看到它至少工作一次或两次,但我现在无法重现它。我必须看看我是否可以在某个地方重现,我可以在以后发布截图...
编辑#2 ...... 发现了一些陌生的行为。如果我这样做(这将是我今天的解决方法),测试结果列表看起来仍然相同,但我在控制台中得到一个漂亮的红色和非常有用的错误消息:
String msg = "FXML file was not found at " + file;
System.err.print("test");
Assert.fail(msg);
但如果我完全注释掉System.err行,我在控制台中什么也得不到。更奇怪的是,如果我放一个空字符串,我仍然没有在控制台中得到任何东西(好吧,也许print()足够聪明,可以忽略空字符串..):
String msg = "FXML file was not found at " + file;
System.err.print("");
Assert.fail(msg);
答案 0 :(得分:0)
我知道这不是你想听到的,但我相信做你想做的事的标准方法是使用这样的try-catch:
try{
....
}catch(Throwable t){
//Add some code to print the details of the Throwable here
fail(t.getMessage());
}
我不知道任何允许你告诉Netbeans / JUnit显示未捕获异常/ throwable消息的设置。
答案 1 :(得分:0)