PowerMockito 给出 NoClassDefFoundError
PowerMockito gives NoClassDefFoundError
我正在尝试使用 Mockito 和 PowerMockito 设置单元测试,但它抛出:
Exception in thread "main" java.lang.NoClassDefFoundError:
org/mockito/exceptions/Reporter
每当我尝试 运行 测试时。这些是我的依赖项:
testCompile 'org.mockito:mockito-core:2.8.9'
testCompile 'org.powermock:powermock-api-mockito2:1.6.5'
testCompile 'org.powermock:powermock-module-junit4:1.7.4'
有人知道怎么解决吗?
您似乎正在尝试使用不兼容的版本。
根据此 table,您需要使用版本 1.7.x
的 Powermock 才能与您的 Mockito 版本 2.8.9
.
兼容
将这些依赖项添加到您的 external-dependencies.xml
-
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-support</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-reflect</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4-common</artifactId>
<version>1.5.6</version>
</dependency>
解释-
powermock 1.5.6
与 junit 4.12
有问题 - 需要 powermock
1.6.1 :: org.powermock.reflect.exceptions.FieldNotFoundException
:在 class[=23 中找不到字段 'fTestClass' =]
org.junit.internal.runners.MethodValidator powermock 1.6.1
需要更多当前 mockito :: 在 class 层次结构中找不到与名称 add 匹配的方法
接口 org.mockito.internal.util.MockitoSpy
.
切换到 powermock 1.6.2
并将 mockito 升级到 1.10.8
:: 结果 java.lang.NoClassDefFoundError
:
org/mockito/internal/creation/util/MockitoMethodProxy
切换到 mockito-core 1.10.19
和 org.powermock 1.6.4
我正在尝试使用 Mockito 和 PowerMockito 设置单元测试,但它抛出:
Exception in thread "main" java.lang.NoClassDefFoundError: org/mockito/exceptions/Reporter
每当我尝试 运行 测试时。这些是我的依赖项:
testCompile 'org.mockito:mockito-core:2.8.9'
testCompile 'org.powermock:powermock-api-mockito2:1.6.5'
testCompile 'org.powermock:powermock-module-junit4:1.7.4'
有人知道怎么解决吗?
您似乎正在尝试使用不兼容的版本。
根据此 table,您需要使用版本 1.7.x
的 Powermock 才能与您的 Mockito 版本 2.8.9
.
将这些依赖项添加到您的 external-dependencies.xml
-
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-support</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-reflect</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4-common</artifactId>
<version>1.5.6</version>
</dependency>
解释-
powermock 1.5.6
与junit 4.12
有问题 - 需要powermock 1.6.1 :: org.powermock.reflect.exceptions.FieldNotFoundException
:在 class[=23 中找不到字段 'fTestClass' =]org.junit.internal.runners.MethodValidator powermock 1.6.1
需要更多当前 mockito :: 在 class 层次结构中找不到与名称 add 匹配的方法 接口org.mockito.internal.util.MockitoSpy
.切换到
powermock 1.6.2
并将 mockito 升级到1.10.8
:: 结果java.lang.NoClassDefFoundError
:org/mockito/internal/creation/util/MockitoMethodProxy
切换到mockito-core 1.10.19
和org.powermock 1.6.4