"Referring to non-existent method org.scalatest.Matchers.convertToAnyShouldWrapper" 将 scalatest 升级到 3.1.4 之后
"Referring to non-existent method org.scalatest.Matchers.convertToAnyShouldWrapper" after upgrading scalatest to 3.1.4
我有 scala 和 scalajs 项目,它在 github 中以供参考。
最初我有 scalatest 版本 3.0.3 和 scalacheck 版本 1.13.5。命令 sbt clean test
工作正常。
我已将 scalatest 版本更新到 3.1.4 和 scalacheck 版本 1.14.3。
在此更新后的 scala 项目测试工作正常但 scalajs 测试不是。
我得到的错误是
[info] Fast optimizing /Users/rajkumar.natarajan/Documents/Coding/misc/sjs-test-error/core/js/target/scala-2.12/reftree-test-fastopt.js
[error] Referring to non-existent method org.scalatestplus.scalacheck.ScalaCheckConfiguration.$$init$()scala.Unit
[error] called from generic.RefTreeSpec.()
[error] called from generic.RefTreeSpec.()
[error] called from core module analyzer
[error] Referring to non-existent method org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.$$init$()scala.Unit
[error] called from generic.RefTreeSpec.()
[error] called from generic.RefTreeSpec.()
[error] called from core module analyzer
[error] There were linking errors
[error] (coreJS / Test / fastOptJS) There were linking errors
[error] Total time: 31 s, completed Jun 9, 2021, 5:54:57 PM
变化在这commit。
我想弄清楚,但我是 scalajs 的新手。我需要做些什么才能正常工作吗?
"org.scalatestplus" %% "scalacheck-1-14" % "3.1.3.0" % Test
使用 %%
。这是对 JVM 工件的依赖,它带来了它自己的依赖的 JVM 版本。您最终在类路径中得到了两个版本的 ScalaTest:一个用于 JVM,一个用于 JS。不幸的是,用于 JVM 的那个被选中,因此遮蔽了用于 JS 的那个。这会导致您收到链接错误。
您可以通过在该依赖项中使用 %%%
而不是 %%
来解决此问题,假设该库可用于 Scala.js。如果不是,您将不得不找到一种根本不需要这种依赖性的方法。
我有 scala 和 scalajs 项目,它在 github 中以供参考。
最初我有 scalatest 版本 3.0.3 和 scalacheck 版本 1.13.5。命令 sbt clean test
工作正常。
我已将 scalatest 版本更新到 3.1.4 和 scalacheck 版本 1.14.3。
在此更新后的 scala 项目测试工作正常但 scalajs 测试不是。
我得到的错误是
[info] Fast optimizing /Users/rajkumar.natarajan/Documents/Coding/misc/sjs-test-error/core/js/target/scala-2.12/reftree-test-fastopt.js
[error] Referring to non-existent method org.scalatestplus.scalacheck.ScalaCheckConfiguration.$$init$()scala.Unit
[error] called from generic.RefTreeSpec.()
[error] called from generic.RefTreeSpec.()
[error] called from core module analyzer
[error] Referring to non-existent method org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.$$init$()scala.Unit
[error] called from generic.RefTreeSpec.()
[error] called from generic.RefTreeSpec.()
[error] called from core module analyzer
[error] There were linking errors
[error] (coreJS / Test / fastOptJS) There were linking errors
[error] Total time: 31 s, completed Jun 9, 2021, 5:54:57 PM
变化在这commit。
我想弄清楚,但我是 scalajs 的新手。我需要做些什么才能正常工作吗?
"org.scalatestplus" %% "scalacheck-1-14" % "3.1.3.0" % Test
使用 %%
。这是对 JVM 工件的依赖,它带来了它自己的依赖的 JVM 版本。您最终在类路径中得到了两个版本的 ScalaTest:一个用于 JVM,一个用于 JS。不幸的是,用于 JVM 的那个被选中,因此遮蔽了用于 JS 的那个。这会导致您收到链接错误。
您可以通过在该依赖项中使用 %%%
而不是 %%
来解决此问题,假设该库可用于 Scala.js。如果不是,您将不得不找到一种根本不需要这种依赖性的方法。