首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScalaTest v3:为什么需要实现convertToLegacyEqualizer

ScalaTest v3:为什么需要实现convertToLegacyEqualizer
EN

Stack Overflow用户
提问于 2016-10-07 20:00:27
回答 3查看 2.3K关注 0票数 16

使用ScalaTest 3.0.0环境:Scala2.11.8,SBT0.13.5,IntelliJ 14.1.4

build.sbt只有

代码语言:javascript
复制
// NOTE: not using org.scalactic
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % "test"

下面的测试通过了。但是,IntelliJ用警告消息在MyMiniTest下面标记了一条支离破碎的红线:

类'MyMiniTest‘必须声明为抽象成员或在'org.scalactic.TripleEqualsSupport’中实现抽象成员'convertToLegacyEqualizerT:TripleEqualsSupport.this.LegacyEqualizerT‘。

代码语言:javascript
复制
import org.scalatest.FeatureSpec

class MyMiniTest extends FeatureSpec {
  scenario("A simple test") {
    val a = 12
    assert(a * 3 == 36)
  }
}

提出此警告的原因是什么?建议的解决方案是什么?

EN

回答 3

Stack Overflow用户

发布于 2016-11-08 08:17:28

我在IntelliJ上也遇到了同样的问题,只需跟随这一步来使缓存/重新启动失效。这将解决问题。

票数 6
EN

Stack Overflow用户

发布于 2019-08-30 17:25:15

在我的示例中,它是一个与我的项目中定义的依赖项冲突的不同版本的传递依赖项(不知道测试库如何出现)。SBT知道如何处理这些情况,IntelliJ似乎不知道。请注意,在这种情况下,使缓存无效并重新启动IntelliJ不会有帮助。

要确定这是您的情况,请检查以下内容:文件->项目结构->项目设置-库。查找org.scalatest:*,您可能会找到两个库,如下所示:

然后通过选择它并在面板顶部按-来删除不必要的。就这样,IntelliJ现在会很高兴的。

一个更干净的解决方案是从依赖项中排除不必要的库,例如:ExclusionRule("org.scalatest", "scalatest_2.11-2.2.4")

IntelliJ将显示该项目的依赖项之间的库,但它将知道应该输入它。

票数 2
EN

Stack Overflow用户

发布于 2019-10-14 06:17:43

请检查所有依赖项,并检查是否有任何依赖项正在下载org.scalatest.*。如果您定义的org.scalatest.*版本与由于其他定义的依赖关系而下载的版本不同,则会出现此问题。我使用的是org.mockito%mockito-scala,它的pom定义了最可缩放的3.0.8。但我定义的最严重的是2.2.5。通过将scalatest的版本更改为3.0.8,我能够解决这个问题。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39924928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档