【发布时间】:2016-10-06 17:45:35
【问题描述】:
当 JUnit 测试收到 unexpected RuntimeException 时,NetBeans 测试结果选项卡会显示失败测试的名称,后跟堆栈跟踪。
例如
someFailedTest 导致错误:在(堆栈跟踪行从此处开始)
没有任何帮助。
虽然堆栈跟踪确实让我们能够追踪问题发生的位置,但如果 NB 也显示任何伴随异常的消息,那就太好了。 (例如,“x 必须 > 0 但为 -2”,或其他。)
据我所知,它似乎没有提供详细信息。有没有办法显示我缺少的异常详细信息?
我可以使用 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);
【问题讨论】:
-
我无法重现您所描述的问题,如我的回答中所述。另外,我很困惑您说的是“NetBeans 测试结果选项卡”,但稍后又提到了“控制台”。您能否发布您所看到的“NetBeans 测试结果选项卡”的实际屏幕截图以及您正在使用的确切测试代码?
-
我意识到这很令人困惑,因为我还不能放一个屏幕截图 - 今晚会尝试获取它,这样会更有意义。
标签: java netbeans junit netbeans-8