当前位置: 首页 > 面试题库 >

升级到2.7后,ClassNotFoundException:运行测试时为org.mockito.exceptions.Reporter

严宸
2023-03-14
问题内容

我尝试一起设置junit,mokito和powermock,但是当我运行测试时,我得到ClassNotFoundException :(

testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:2.7.22'
androidTestCompile 'org.mockito:mockito-core:2.7.22'
androidTestCompile "org.mockito:mockito-android:2.7.22"

testCompile 'org.robolectric:robolectric:3.3.2'
testCompile 'org.hamcrest:hamcrest-core:1.3'

testCompile 'org.powermock:powermock-core:1.6.6'
testCompile 'org.powermock:powermock-module-junit4:1.6.6'
testCompile 'org.powermock:powermock-module-junit4-rule:1.6.6'
testCompile 'org.powermock:powermock-api-mockito:1.6.6'
testCompile 'org.powermock:powermock-classloading-xstream:1.6.6'`

我还尝试通过添加以下内容来添加cglib:

testCompile 'cglib:cglib:3.1'
testCompile 'cglib:cglib-nodep:3.1'

但不乏。

任何人都可以共享工作配置或指出问题所在。

我运行测试时的堆栈跟踪:

Exception in thread "main" java.lang.NoClassDefFoundError: org/mockito/exceptions/Reporter
    at sun.reflect.GeneratedSerializationConstructorAccessor5.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.objenesis.instantiator.sun.SunReflectionFactoryInstantiator.newInstance(SunReflectionFactoryInstantiator.java:48)
    at org.powermock.reflect.internal.WhiteboxImpl.newInstance(WhiteboxImpl.java:251)
    at org.powermock.reflect.Whitebox.newInstance(Whitebox.java:139)
    at org.powermock.api.extension.reporter.AbstractMockingFrameworkReporterFactory.getInstanceForClassLoader(AbstractMockingFrameworkReporterFactory.java:41)
    at org.powermock.api.extension.reporter.AbstractMockingFrameworkReporterFactory.create(AbstractMockingFrameworkReporterFactory.java:35)
    at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.getMockingFrameworkReporter(JUnit4TestSuiteChunkerImpl.java:140)
    at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:119)
    at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53)
    at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.ClassNotFoundException: org.mockito.exceptions.Reporter
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:190)
    at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass1(DeferSupportingClassLoader.java:77)
    at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:67)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 21 more

问题答案:

那对我有用:

testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:2.8.0'
testCompile 'org.powermock:powermock-api-mockito2:1.7.0RC2'
testCompile 'org.powermock:powermock-module-junit4:1.7.0'
testCompile 'org.powermock:powermock-core:1.7.0'
testCompile 'org.powermock:powermock-module-junit4-rule:1.7.0'

使用Mockito2为我解决了这个问题。



 类似资料:
  • 编辑: 解决方法:我用Quarkus的master分支做了一个测试,它起作用了,它可能会在1.3.1版--最终版中解决。

  • 我应该将我的项目log4j升级到log4j2。所以我删除了log4j依赖项并添加了log4j2。一些项目工作良好,但有一个项目出现错误,如下所示: 我使用了mvn dependency:tree命令,试图找到依赖项之间的冲突,并且试图排除可能相关的每个子库,但仍然得到相同的错误。 依赖项: log4j2.properties:

  • 我正在docker文件中使用量角器(5.4.2版)运行测试。google chrome升级到76版后,测试开始失败,出现以下错误: 我尝试了几种方法来解决这个问题: 1)试图将chrome版本标记为以前的版本。但是chrome移动到稳定版本,以前的版本是铬的。 2)也在网上寻找了一些可能的解决方案来下载,但对我不起作用 3)网络驱动程序管理器更新-versions.chrome76.0.3809.

  • Symfony 2.7于2015年4月30日发布,是继2.3版本之后的当前LTS(长期支持)版本。Symfony 2.3的这些版本的维护将于2016年5月结束,Symfony 2.7的维护将于2018年5月结束。两个版本的安全补丁将在维护结束后的一年内发布。 正如Massimiliano Arione在公告评论中所建议的那样,从Symfony 2.3升级到2.7需要做哪些更改,而无需检查所有次要升

  • 将项目升级到spring boot 1.5.9(spring 4.3)之后 当我添加工具时,它就起作用了。jar是一个gradle依赖项,但这不是一个解决方案,因为jdk库不应该打包在项目中。 我们使用的是queryDSL(2.7.3)的旧版本,该项目将生成的代码提交给repo(这是一个旧项目,我宁愿在编译时生成)。 更新:降级到tomcat后返回v7。0.*它再次开始工作。 知道tomcat 8