2009-05-13 11 views
6

Mam nadzieję, że proste pytanie tutaj dla kogoś .....Debuger nie będzie pracować z JMockit

używam RAD 7.5.2 i piszę testy JUnit. Pisałem je dobrze z JUnit 3, a następnie chciałem wykpić niektóre wywołania funkcji. Więc załadowałem jmockit 0.9.7 i Junit 4.6. Dołączam również -javaagent: jmockit.jar jako argument VM.

Po uruchomieniu "Uruchom jako test Junit", nie ma żadnych problemów (przynajmniej żaden nie widzę na wyjściu). Wyjście Junita jest dobre i żadne błędy nie są zrzucane na konsolę.

Kiedy "Debuguję jako test Junit", to nie zadziała. To zrzuca mnie na:

InstrumentationImpl.class -> Źródła nie znaleziono

... i kiedy uderzy dalej ....

NativeMethodAccessorImpl.class -> Źródło Nie znaleziono

... a kiedy uderzę dalej ...

JUnit kończy się po tym. To zrzuca następujących do konsoli:


Wyjątek w wątku "głównym" java.lang.reflect.InvocationTargetException na sun.reflect.NativeMethodAccessorImpl.invoke0 (metoda podstawowa) na sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:79) w sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) w java.lang.reflect.Method.invoke (Method.java:618) w sun.instrument.InstrumentationImpl.loadClassAndCallPremain (InstrumentationImpl.java:160) Spowodowane przez: java.lang.UnsatisfiedLinkError: sun/instrument/InstrumentationImpl.redefineClasses0 ([Ljava/język/tablica/ClassDefinition;) v w sun.instrument.InstrumentationImpl.redefineClasses (InstrumentationImpl.java:98) w mockit.internal.RedefinitionEngine.redefineMethods (RedefinitionEngine.java:197) w mockit.internal.RedefinitionEngine.redefineMethods (RedefinitionEngine.java:184) na mockit.internal.RedefinitionEngine.redefineMethods (RedefinitionEngine.java:116) w mockit.internal.RedefinitionEngine.setUpInternalStartupMock (RedefinitionEngine.java:53) w mockit.internal.Startup.loadInternalStartupMocks (uruchamianie. Java: 123) na mockit.internal.Startup.initialize (Startup.java:110) na mockit.internal.Startup.premain (Startup.java:97) ... 5 więcej

Błąd krytyczny: przetwarzanie -javaagent udało


mogę uruchomić zarówno JUnit 3 i JUnit 4 na moich testów bez problemu, to gdy używam -javaagent: jmockit.jar (z debuggera; same w sobie są w porządku), że rzeczy stają się brzydkie, i muszę to zrobić, aby użyć rzeczy jmockit.

Myśli?

+0

miałem inny problem, którego nie binarny rzeczywiście wyrównać z kodem źródłowym. – zinking

Odpowiedz

1

Regularnie przeprowadzam testy JUnit, które używają JMockit (z argumentem JVM "-javaagent" i bez niego) w trybie debugowania i nigdy nie miałem żadnych problemów.

Czy jesteś pewien, że ścieżka klas dla konfiguracji "Debuguj jako test Junit" jest identyczna jak dla "Uruchom jako test Junit"? Ponieważ dostałeś UnsatisfiedLinkError, może to oznaczać, że brakuje jakiegoś pliku JAR.

Jeśli to nie jest przyczyną błędu, to może to jest coś konkretnego do RAD 7.5.2 ...

+0

To samo dzieje się z RAD 7.5.5; takie same symptomy, jak opisał Jacob. – Greg

Powiązane problemy