首页 > 解决方案 > 异常或错误导致运行中止:org.mockito.internal.progress.ThreadSafeMockingProgress.mockingProgress()L

问题描述

我的环境是 Intellij、SBT、Scala 和 Play。

什么可能导致以下异常?它不会一直发生。由于以下异常,有时我无法运行我的测试用例。

我在用"org.mockito" % "mockito-core" % "2.24.5" % "test",

我怀疑可能存在一些库不匹配或不一致,但我无法弄清楚它是什么?我试图清理/重新编译项目(sbt)但未能解决问题。

An exception or error caused a run to abort: org.mockito.internal.progress.ThreadSafeMockingProgress.mockingProgress()Lorg/mockito/internal/progress/MockingProgress; 
java.lang.NoSuchMethodError: org.mockito.internal.progress.ThreadSafeMockingProgress.mockingProgress()Lorg/mockito/internal/progress/MockingProgress;
    at org.mockito.ArgumentMatchers.reportMatcher(ArgumentMatchers.java:1329)
    at org.mockito.ArgumentMatchers.anyObject(ArgumentMatchers.java:165)
    at org.mockito.ArgumentMatchers.any(ArgumentMatchers.java:145)
    at UnitSpecs.TestEnv.<init>(TestEnv.scala:77)
    at UnitSpecs.ServiceSpecs.ServicesTestEnv.<init>(ServicesTestEnv.scala:17)
    at UnitSpecs.ServiceSpecs.CassandraConnectionServiceSpecs.<init>(CassandraConnectionServiceSpecs.scala:76)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at org.scalatest.tools.Runner$.genSuiteConfig(Runner.scala:1422)
    at org.scalatest.tools.Runner$.$anonfun$doRunRunRunDaDoRunRun$8(Runner.scala:1236)
    at scala.collection.immutable.List.map(List.scala:283)
    at org.scalatest.tools.Runner$.doRunRunRunDaDoRunRun(Runner.scala:1235)
    at org.scalatest.tools.Runner$.$anonfun$runOptionallyWithPassFailReporter$24(Runner.scala:1031)
    at org.scalatest.tools.Runner$.$anonfun$runOptionallyWithPassFailReporter$24$adapted(Runner.scala:1010)
    at org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:1500)
    at org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:1010)
    at org.scalatest.tools.Runner$.run(Runner.scala:850)
    at org.scalatest.tools.Runner.run(Runner.scala)
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.runScalaTest2(ScalaTestRunner.java:133)
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.main(ScalaTestRunner.java:27)

调用链是我的测试用例调用

  val servicesTestEnv = new ServicesTestEnv(Some(cqlStartupStatements),components)

调用

val testEnv = new TestEnv(components=components)

调用

  when(mockHelperMethods.bucketIDFromEmail(ArgumentMatchers.any[String]())).thenReturn(1)

然后异常

java.lang.NoSuchMethodError: org.mockito.internal.progress.ThreadSafeMockingProgress.mockingProgress()Lorg/mockito/internal/progress/MockingProgress;
    at org.mockito.ArgumentMatchers.reportMatcher(ArgumentMatchers.java:1329)
    at org.mockito.ArgumentMatchers.anyObject(ArgumentMatchers.java:165)
    at org.mockito.ArgumentMatchers.any(ArgumentMatchers.java:145)

该方法mockingProgress在 ThreadSafeMockingProgress.java 中定义C:\Users\manuc\.ivy2\cache\org.mockito\mockito-core\srcs\mockito-core-2.24.5-sources.jar!\org\mockito\internal\progress\ThreadSafeMockingProgress.java

标签: intellij-ideamockitosbt

解决方案


我不知道是什么问题,但是有两个 Mockito 库(1.1. 和 2.45.,不是确切的版本。我认为 1.1 被选中了。我通过转到 File -> Project Structure 删除了它并删除了 1.1 版本. 图片如下。

在此处输入图像描述


推荐阅读