2011-03-13 17 views
23

Estoy ejecutando un caso de prueba junit usando el corredor de prueba PowerMock. estoy usando la línea de comandos para ejecutarlo:NoClassDefFoundError al usar Powermock

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

Al hacerlo estoy recibiendo este error:

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

¿Cómo puedo solucionarlo?

Respuesta

0

He resuelto el problema. Usé la versión anterior junit-4.0.jar. Pero todavía no entiendo por qué falta la clase TestClassRunner especialmente en el paquete powermock-easymock-junit-1.4.8.zip (hay junit-4.8.2.jar)? El junit-4.8.2.jar tampoco tiene la clase TestClassRunner.

+0

Esta no es la solución correcta - simplemente una solución. Ver mi respuesta – RonK

63

Acabo de resolver éste ahora, cuando he añadido el atributo @RunWith(PowerMockRunner.class), eclipse importados automáticamente:

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

Todo lo que tenía que hacer es cambiarlo a ser:

import org.powermock.modules.junit4.PowerMockRunner; 

Y ahora funciona bien con JUnit 4.8.2.

El segundo corredor es para cuando se ejecuta con versiones anteriores de JUnit - específicamente 4.3 y anterior.

+0

Gracias por la respuesta. – jatanp

+0

muchas gracias RonK !! – NiranjanBhat

+1

Muchas gracias :) – shafeeq

5

Ver 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.

Cuestiones relacionadas