2011-03-13 7 views
23

È in esecuzione un test case junit utilizzando il test runner PowerMock. Sto utilizzando la seguente riga di comando per eseguirlo:NoClassDefFoundError quando si utilizza Powermock

java -cp .:junit-4.9b2.jar:easymock-3.0.jar:powermock-easymock-1.4.8-full.jar org.junit.runner.JUnitCore SampleTest 

Nel fare ciò che sto ricevendo questo errore:

initializationError(SampleTest) 
java.lang.NoClassDefFoundError: org/junit/internal/runners/TestClassRunner 
... 

Come posso risolvere il problema?

risposta

0

Ho risolto il problema. Ho usato la vecchia versione junit-4.0.jar. Ma ancora non capisco perché manca la classe TestClassRunner soprattutto nel pacchetto powermock-easymock-junit-1.4.8.zip (c'è junit-4.8.2.jar)? Junit-4.8.2.jar manca anche la classe TestClassRunner.

+0

Questa non è la soluzione corretta - solo una soluzione. Vedere la mia risposta – RonK

63

Ho appena risolto questo ora, quando ho aggiunto l'attributo @RunWith(PowerMockRunner.class), eclipse importati automaticamente:

import org.powermock.modules.junit4.legacy.PowerMockRunner; 

Tutto quello che dovevo fare è cambiare di essere:

import org.powermock.modules.junit4.PowerMockRunner; 

E ora funziona bene con JUnit 4.8.2.

Il secondo runner è per le versioni precedenti di JUnit - in particolare 4.3 e precedenti.

+0

Grazie per la risposta. – jatanp

+0

grazie mille RonK !! – NiranjanBhat

+1

Grazie mille per questo :) – shafeeq

5

Vedi here

You're probably using the wrong PowerMockRunner. There's one runner made for JUnit 4.4 and above and a second runner made for JUnit 4.0-4.3 (although the latter also works for some older minor versions of JUnit 4.4).
Try switching from the org.powermock.modules.junit4.PowerMockRunner to org.powermock.modules.junit4.legacy.PowerMockRunner or vice versa. Look at the getting started guide to see how to configure this in maven.