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

时间:2013-02-20 23:11:57

标签: java eclipse debugging junit

在eclipse中,如果我在调试模式下运行没有断点的Java程序,并且如果JVM遇到NullPointerException,Eclipse将会突出显示有问题的代码行,并显示本地变量等。执行暂停。我可以使用“显示”选项卡评估代码,依此类推。

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

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

编辑: 使用JUnit 4&朱诺

4 个答案:

答案 0 :(得分:2)

  1. 双击设置断点

  2. 使用调试模式在Eclipse中运行

  3. 将鼠标悬停在该行代码上,然后点击step overf6

答案 1 :(得分:2)

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

我想到了两个解决方案:

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

答案 2 :(得分:0)

您可以在JUnit选项卡上看到它,如果您双击有问题的行,您将转到发生空指针异常的位置。

java.lang.NullPointerException        <--First line of the error
at.com.myProject.MyClass.myMethod(MyClass.java:theLineOfMyCode) <-- the line that you should double-click

执行此操作后,您将被重定向到错误行。

答案 3 :(得分:0)

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