如何调试类似于 Eclipse 中常规 Java 程序的 JUnit 测试

2022-09-01 17:52:07

在 eclipse 中,如果我在调试模式下运行一个没有断点的 Java 程序,并且如果 JVM 命中 NullPointerException,Eclipse 会突出显示有问题的代码行,并显示局部变量等。执行已暂停。我可以使用“显示”选项卡等来评估代码。

但是,如果我在调试模式下运行 JUnit 测试,并且 jvm 命中 NullPointerException,则 jvm 不会暂停,并且我没有机会看到局部变量。

是否可以运行 JUnit 测试,以便在我命中 NullPointerException 时 JVM 自动暂停,而不使用断点?

编辑:使用JUnit 4和Juno


答案 1

当引发的异常未被捕获时,Eclipse 会停止,并且会将你撞出 main()。但是,当您使用 JUnit 框架运行时,所有异常都会被 JUnit 捕获,因此 Eclipse 不会停止。

我想到了两种解决方案:

  • 将异常断点设置为在抛出时停止NullPointerException
  • 使用 JUnit 报告的异常堆栈跟踪,并在引发异常的行上设置断点(这是我更喜欢的断点)。

答案 2
  1. 打开要运行的 Junit 测试用例或 Junit 测试套件。
  2. 放置断点。
  3. 右键单击该文件,然后单击“调试为”> Junit 测试”。