使用Powermock时NoClassDefFoundError
我正在使用PowerMock
测试运行器运行junit
测试用例。 我正在使用以下命令行来执行它:
java -cp .:junit-4.9b2.jar:easymock-3.0.jar:powermock-easymock-1.4.8-full.jar org.junit.runner.JUnitCore SampleTest
这样做时,我收到此错误:
initializationError(SampleTest) java.lang.NoClassDefFoundError: org/junit/internal/runners/TestClassRunner ...
我该如何解决?
我刚刚解决了这个问题,当我添加@RunWith(PowerMockRunner.class)
属性时, eclipse
自动导入:
import org.powermock.modules.junit4.legacy.PowerMockRunner;
我需要做的就是改变它:
import org.powermock.modules.junit4.PowerMockRunner;
现在它适用于JUnit 4.8.2
。
第二个运行器用于运行旧版本的JUnit
– 特别是4.3
及更早版本。
看到这里
您可能使用了错误的PowerMockRunner。 有一个为JUnit 4.4及以上版本制作的跑步者和为JUnit 4.0-4.3制作的第二个跑步者(尽管后者也适用于JUnit 4.4的一些较旧的次要版本)。
尝试从org.powermock.modules.junit4.PowerMockRunner切换到org.powermock.modules.junit4.legacy.PowerMockRunner,反之亦然。 查看入门指南 ,了解如何在maven中配置它。
我解决了这个问题。 我用旧版junit-4.0.jar。 但我仍然不明白为什么缺少类TestClassRunner,特别是在包powermock-easymock-junit-1.4.8.zip(有junit-4.8.2.jar)? junit-4.8.2.jar也缺少类TestClassRunner。
我正在使用JUnit 4.0 – 4.3并且我更新了我的maven依赖项以使用powermockito 2.0.0-beta.5版本。 它刚刚开始工作。
org.powermock powermock-module-junit4 2.0.0-beta.5 test org.powermock powermock-api-mockito2 2.0.0-beta.5 test