39

我正在junit使用测试运行器运行一个测试用例PowerMock。我正在使用以下命令行来执行它:

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

我该如何解决?

4

5 回答 5

87

我现在刚刚解决了这个,当我添加@RunWith(PowerMockRunner.class)属性时,eclipse自动导入:

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

我需要做的就是将其更改为:

import org.powermock.modules.junit4.PowerMockRunner;

现在它与JUnit 4.8.2.

2nd runner 用于运行旧版本JUnit- 特别是更旧的版本4.3

于 2011-07-05T06:00:02.193 回答
7

这里

您可能使用了错误的 PowerMockRunner。有一个为 JUnit 4.4 及更高版本制作的跑步者,以及为 JUnit 4.0-4.3 制作的第二个跑步者(尽管后者也适用于 JUnit 4.4 的一些较旧的次要版本)。
尝试从 org.powermock.modules.junit4.PowerMockRunner 切换到 org.powermock.modules.junit4.legacy.PowerMockRunner,反之亦然。查看入门指南以了解如何在 Maven 中进行配置。

于 2011-09-23T18:06:38.643 回答
5

当您在使用 JUnit 4.X 或更高版本时导入旧版本的 PowerMockRunner.class 时会发生此异常,因为在使用 @RunWith 注释时无法运行此旧类。我通过用新版本替换旧的旧版本导入解决了这个问题。

不正确的导入:

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

正确导入:

import org.powermock.modules.junit4.PowerMockRunner;
于 2018-12-03T15:59:42.750 回答
1

我解决了这个问题。我使用的是旧版本的 junit-4.0.jar。但是我仍然不明白为什么缺少类TestClassRunner,尤其是在包powermock-easymock-junit-1.4.8.zip(有junit-4.8.2.jar)中?junit-4.8.2.jar 也缺少类 TestClassRunner。

于 2011-03-13T21:54:32.427 回答
0

我正在使用 JUnit 4.0 - 4.3 并且我更新了我的 maven 依赖项以使用 powermockito 2.0.0-beta.5 版本。它刚刚开始工作。

 <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>
于 2018-09-27T20:17:51.657 回答