使用ScalaTest 3.0.0环境:Scala2.11.8,SBT0.13.5,IntelliJ 14.1.4
build.sbt只有
// NOTE: not using org.scalactic
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % "test"下面的测试通过了。但是,IntelliJ用警告消息在MyMiniTest下面标记了一条支离破碎的红线:
类'MyMiniTest‘必须声明为抽象成员或在'org.scalactic.TripleEqualsSupport’中实现抽象成员'convertToLegacyEqualizerT:TripleEqualsSupport.this.LegacyEqualizerT‘。
import org.scalatest.FeatureSpec
class MyMiniTest extends FeatureSpec {
scenario("A simple test") {
val a = 12
assert(a * 3 == 36)
}
}提出此警告的原因是什么?建议的解决方案是什么?
发布于 2016-11-08 08:17:28
我在IntelliJ上也遇到了同样的问题,只需跟随这一步来使缓存/重新启动失效。这将解决问题。
发布于 2019-08-30 17:25:15
在我的示例中,它是一个与我的项目中定义的依赖项冲突的不同版本的传递依赖项(不知道测试库如何出现)。SBT知道如何处理这些情况,IntelliJ似乎不知道。请注意,在这种情况下,使缓存无效并重新启动IntelliJ不会有帮助。
要确定这是您的情况,请检查以下内容:文件->项目结构->项目设置-库。查找org.scalatest:*,您可能会找到两个库,如下所示:

然后通过选择它并在面板顶部按-来删除不必要的。就这样,IntelliJ现在会很高兴的。
一个更干净的解决方案是从依赖项中排除不必要的库,例如:ExclusionRule("org.scalatest", "scalatest_2.11-2.2.4")
IntelliJ将显示该项目的依赖项之间的库,但它将知道应该输入它。
发布于 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,我能够解决这个问题。
希望这能有所帮助。
https://stackoverflow.com/questions/39924928
复制相似问题