代码之家  ›  专栏  ›  技术社区  ›  user51

将scalatest升级到3.1.4后,“引用不存在的方法org.scalatest.Matchers.convertToAnyShouldWrapper”

  •  0
  • user51  · 技术社区  · 3 年前

    我有一个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]快速优化/Users/rajkumar。natarajan/Documents/Coding/misc/sjs test error/core/js/target/scala-2.12/reftree-test-fastopt。js

    [错误]指的是不存在的方法组织。scalatestplus。斯卡拉切克。ScalaCheckConfiguration$$初始化$()scala。单元

    [错误]从泛型调用。Reftrespect。()

    从核心模块分析器调用[错误]

    [错误]指的是不存在的方法组织。scalatestplus。斯卡拉切克。ScalaceCkDrivenPropertyChecks$$初始化$()scala。单元

    [错误]从泛型调用。Reftrespect。()

    [错误]从泛型调用。Reftrespect。()

    从核心模块分析器调用[错误]

    [错误]存在链接错误

    [error](coreJS/Test/fastOptJS)存在链接错误

    [错误]总时间:31秒,完成2021年6月9日,下午5:54∶57

    变化就在这方面 commit .

    我试着弄明白,但我对scalajs还是个新手。我还需要做什么才能正常工作吗?

    1 回复  |  直到 3 年前
        1
  •  2
  •   sjrd    3 年前

    在你的差异中,至少 https://github.com/rajcspsg/sjs-test-error/commit/bb3f00cc542b29998af271530dccae9b73f2ad00#diff-5634c415cd8c8504fdb973a3ed092300b43c4b8fc1e184f7249eb29a55511f91R33 ,你依赖于

    "org.scalatestplus" %% "scalacheck-1-14" % "3.1.3.0" % Test
    

    哪个用 %% .这是对JVM工件的依赖,它带来了自己依赖的JVM版本。最后,在类路径上有两个版本的ScalaTest:一个用于JVM,另一个用于JS。运气不好的话,JVM的那个会被选中,因此会给JS的那个蒙上阴影。这会导致出现链接错误。

    你可以通过使用 %%% 而不是 %% 在该依赖关系中,假设该库可用于Scala。js。如果不是,你必须找到一种完全不需要依赖的方法。