簡體   English   中英

調試器不適用於JMockit

[英]Debugger won't work with JMockit

希望對某人來說這是一個簡單的問題.....

我正在使用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在此之后結束。 它將以下內容轉儲到控制台:


位於sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl)的sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)中的線程“main”java.lang.reflect.InvocationTargetException中的異常.java:43)在sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:160)的java.lang.reflect.Method.invoke(Method.java:618)中引起:java.lang.UnsatisfiedLinkError:sun / instrument / InstrumentationImpl.redefineClasses0([Ljava / lang / instrument / ClassDefinition;)V at the sun.instrument.InstrumentationImpl.redefineClasses(InstrumentationImpl.java:98)at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:197)at mockit.internal。在mockit.internal.RedefinitionEngine.setUpInternalStartupMock(RedefinitionEngine.j)上的mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:116)重新定義引擎。重定義方法(RedefinitionEngine.java:184) ava: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的東西。

思考?

我經常在調試模式下運行使用JMockit(有和沒有“-javaagent”JVM參數)的JUnit測試,並且從未遇到任何問題。

您確定“Debug as Junit Test”配置的類路徑是否與“Run As Junit Test”相同? 由於您遇到了UnsatisfiedLinkError,可能是因為缺少一些jar文件。

如果這不是錯誤的原因,那么也許它是RAD 7.5.2特有的......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM