Отладчик не будет работать с JMockit - PullRequest
6 голосов
/ 14 мая 2009

Надеюсь, легкий вопрос здесь для кого-то .....

Я использую RAD 7.5.2 и пишу тесты Junit. Я писал их просто отлично с JUnit 3, а затем я хотел макетировать некоторые вызовы функций. Итак, я загрузил jmockit 0.9.7 и Junit 4.6. Я также включаю -javaagent: jmockit.jar в качестве аргумента виртуальной машины.

Когда я "Run As Junit Test", он проходит без проблем вообще (по крайней мере, ни один, который я могу видеть на выходе). Вывод Junit хорош, и ошибки не выводятся на консоль.

Когда я "Отладка как тест Junit", он не будет работать. Это сбрасывает меня в:

InstrumentationImpl.class -> Источник не найден

... и когда я нажму продолжить ...

NativeMethodAccessorImpl.class -> Источник не найден

... и когда я нажму продолжить ...

JUnit заканчивается после этого. В консоль выводится следующее:


Исключение в потоке "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:79) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke (Method.java:618) в sun.instrument.InstrumentationImpl.loadClassAndCallPremain (InstrumentationImpl.java:160) Вызывается: java.lang.UnsatisfiedLinkError: sun / instrument / InstrumentationImpl.redefineClasses0 ([Ljava / lang / instrument / ClassDefinition;) V в sun.instrument.InstrumentationImpl.redefineClasses (InstrumentationImpl.java:98) в mockit.internal.RedefinitionEngine.redefineMethods (RedefinitionEngine.java:197) в mockit.internal.RedefinitionEngine.redefineMethods (RedefinitionEngine.java:184) в mockit.internal.RedefinitionEngine.redefineMethods (RedefinitionEngine.java:116) в mockit.internal.RedefinitionEngine.setUpInternalStartupMock (RedefinitionEngine.java:53) в mockit.internal.Startup.loadInternalStartupMocks (Startup.java:123) at mockit.internal.Startup.initialize (Startup.java:110) в mockit.internal.Startup.premain (Startup.java:97) ... еще 5

Неустранимая ошибка: сбой обработки -javaagent


Я могу без проблем запускать как JUnit 3, так и JUnit 4 на своих тестах, когда я использую -javaagent: jmockit.jar (с отладчиком; сами по себе они в порядке), что все становится ужасно чтобы сделать это, чтобы использовать jmockit.

Мысли

1 Ответ

1 голос
/ 02 июля 2009

Я регулярно запускаю тесты JUnit, использующие JMockit (с аргументом JVM "-javaagent" и без него) в режиме отладки, и никогда не возникало никаких проблем.

Вы уверены, что путь к классу для конфигурации «Debug as Junit Test» идентичен тому, что и для «Run As Junit Test»? Поскольку вы получили ошибку UnsatisfiedLinkError, возможно, отсутствует какой-либо jar-файл.

Если это не является причиной ошибки, возможно, это что-то особенное для RAD 7.5.2 ...

...