调试器不适用于JMockit

时间:2009-05-13 20:02:09

标签: debugging junit4 jmockit javaagents

希望对某人来说这是一个简单的问题.....

我正在使用RAD 7.5.2,并且正在编写Junit测试。我用JUnit 3编写它们就好了,然后我想模拟一些函数调用。所以我加载了jmockit 0.9.7和Junit 4.6。我还包括-javaagent:jmockit.jar作为VM参数。

当我“运行为Junit测试”时,它完全没有问题(至少,我没有看到输出)。 Junit的输出很好,没有错误被转储到控制台。

当我“调试为Junit测试”时,它将无法工作。它让我陷入:

InstrumentationImpl.class - >找不到来源

......当我点击继续....

NativeMethodAccessorImpl.class - >找不到来源

......当我点击继续......

JUnit在此之后结束。它将以下内容转储到控制台:


线程“main”java.lang.reflect.InvocationTargetException中的异常     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:618)     at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:160) 引起:java.lang.UnsatisfiedLinkError:sun / instrument / InstrumentationImpl.redefineClasses0([Ljava / lang / instrument / ClassDefinition;)V     at sun.instrument.InstrumentationImpl.redefineClasses(InstrumentationImpl.java:98)     at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:197)     at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:184)     at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:116)     at mockit.internal.RedefinitionEngine.setUpInternalStartupMock(RedefinitionEngine.java:53)     at mockit.internal.Startup.loadInternalStartupMocks(Startup.java:123)     at mockit.internal.Startup.initialize(Startup.java:110)     at mockit.internal.Startup.premain(Startup.java:97)     ......还有5个

致命错误:-javaagent处理失败


我可以在我的测试中同时运行JUnit 3和JUnit 4,没问题,当我使用-javaagent时:jmockit.jar(使用调试器;他们自己很好)事情变得很难看,我有这样做是为了使用jmockit的东西。

思想?

1 个答案:

答案 0 :(得分:1)

我经常在调试模式下运行使用JMockit(有和没有“-javaagent”JVM参数)的JUnit测试,并且从未遇到任何问题。

您确定“Debug as Junit Test”配置的类路径是否与“Run As Junit Test”相同?由于您遇到了UnsatisfiedLinkError,可能是因为缺少一些jar文件。

如果这不是错误的原因,那么可能是RAD 7.5.2特有的......