Jam*_*mes 21 java eclipse debugging
我刚开始使用Eclipse,所以对我很轻松;).但是当我尝试调试JUnit测试用例时,我得到一个对话框,指出当我在我的测试方法的代码中找到这行时找不到源代码:
Assert.assertEquals(1, contents.size());
我知道我应该去尝试从某个地方下载源代码,但我真的不想这样做,因为我没有兴趣进入JUnit代码.我有JUnit运行时jar所以为什么Eclipse希望我拥有所有引用的工具源代码以调试我自己的代码(看起来有点傻)?
我的主要问题是,如果源不可用,我如何告诉Eclipse跳过此对话框并允许我继续调试自己的代码?
[编辑]
我已经找到了原因.似乎Eclipse在内部JUnit代码抛出异常时似乎认为它需要源代码.一般来说,无论如何都要告诉它它没有,只是让它抛出某种错误对话框而不是?
Chr*_*row 20
我很长时间遇到了这个非常烦人的问题,但终于能够解决它了.在我的例子中,在Java的Transformer.IsRuntimeCode(ProtectionDomain)函数中抛出了一个空指针异常.
我真的不需要知道这个,因为异常被捕获和处理,但eclipse会在每次发生这种情况时暂停调试,并告诉我源代码不可用.结果,我不断地按下按钮继续执行代码.
为了防止这种情况发生,我:
这阻止了调试器在捕获的NullPointerException期间暂停程序流.
替代文字http://www.SharpDetail.com/p/so_breakpoint.gif
Von*_*onC 10
抛出异常时,调试调用堆栈将显示JUnit源代码行.
但是,如果您没有JUnit的源代码,则不必担心.
如果你回到一行在调用堆栈,你应该可以看到(的线你曾引起了JUnit异常源代码).
这应该足以调试您的代码.
要将源与JUnit相关联,您可以junit.jar在项目的库中添加,并将其关联junit-x.y.z-src.jar到junit-x.y.z.jar,如下所示:

这将在.classpath您的项目中生成如下行:
<classpathentry kind="lib" path="junit-x.y.z.jar" sourcepath="junit-x.y.z-src.jar">
注意:实际上,junit[...].jar此classpathentry行中的文件将有完整路径.但您也可以使用链接资源来避免文件中的固定值(完整路径).classpath.
| 归档时间: | 
 | 
| 查看次数: | 69058 次 | 
| 最近记录: |