使用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