6

ここで誰かにとって簡単な質問であることを願っています.....

私は RAD 7.5.2 を使用しており、Junit テストを作成しています。私は JUnit 3 で問題なく記述していましたが、いくつかの関数呼び出しをモックアップしたいと考えました。そこで、jmockit 0.9.7 と Junit 4.6 をロードしました。VM 引数として -javaagent:jmockit.jar も含めます。

「Run As Junit Test」を実行しても、まったく問題はありません (少なくとも、出力には何も表示されません)。Junit の出力は良好で、コンソールにエラーは出力されません。

「Junit テストとしてデバッグ」すると、動作しません。それは私を次のように捨てます:

InstrumentationImpl.class --> ソースが見つかりません

...そして、続けるをクリックすると....

NativeMethodAccessorImpl.class --> ソースが見つかりません

...そして、続行をクリックすると...

JUnit はこの後終了します。以下をコンソールにダンプします。


スレッド「メイン」での例外 java.lang.reflect.InvocationTargetException での sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) での sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79) での sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl) .java:43) at 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;)mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:197) で sun.instrument.InstrumentationImpl.redefineClasses(InstrumentationImpl.java:98) の V。再定義エンジン。mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:116) の redefineMethods(RedefinitionEngine.java:184) mockit.internal.RedefinitionEngine.setUpInternalStartupMock(RedefinitionEngine.java:53) の mockit.internal.Startupload.InternalStartupMocks(Startup.java) :123) 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のものを使用します。

考え?

4

1 に答える 1

1

JMockit (「-javaagent」JVM 引数の有無にかかわらず) をデバッグ モードで使用する JUnit テストを定期的に実行していますが、問題はありませんでした。

「Debug as Junit Test」構成のクラスパスは、「Run As Junit Test」のクラスパスと同じですか? UnsatisfiedLinkError が発生したため、jar ファイルが不足している可能性があります。

それがエラーの原因でない場合は、RAD 7.5.2 に固有のものである可能性があります...

于 2009-07-02T14:39:46.117 に答える