java - method - powermock maven
NoClassDefFoundError cuando se utiliza Powermock (4)
Acabo de resolver esto ahora, cuando agregué el @RunWith(PowerMockRunner.class)
, eclipse
importado automáticamente:
import org.powermock.modules.junit4.legacy.PowerMockRunner;
Todo lo que necesito hacer es cambiarlo para que sea:
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 versiones anteriores.
Estoy ejecutando un caso de prueba junit
utilizando el PowerMock
prueba PowerMock
. Estoy usando la siguiente línea de comandos para ejecutarlo:
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 arreglarlo?
Estoy usando JUnit 4.0 - 4.3 y actualicé mi dependencia de Maven para usar la versión powermockito 2.0.0-beta.5. Acaba de empezar a trabajar.
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.0-beta.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.0-beta.5</version>
<scope>test</scope>
</dependency>
Resolví el problema. Utilicé la versión antigua junit-4.0.jar. Pero aún 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)? En el junit-4.8.2.jar también falta la clase TestClassRunner.
Ver here
Probablemente estés usando el PowerMockRunner incorrecto. Hay un corredor creado para JUnit 4.4 y superior y un segundo corredor creado para JUnit 4.0-4.3 (aunque este último también funciona para algunas versiones menores antiguas de JUnit 4.4).
Intente cambiar de org.powermock.modules.junit4.PowerMockRunner a org.powermock.modules.junit4.legacy.PowerMockRunner o viceversa. Mire la guía de inicio para ver cómo configurar esto en maven.