【问题标题】:Cannot Resolve Symbol "Scalatest"无法解析符号“Scalatest”
【发布时间】:2015-10-03 16:22:33
【问题描述】:

我正在尝试使用 scalatest,但 Intellij 无法识别:

import org.scalatest._

这是我的 build.sbt 文件,与我的 scalatest.jar 文件位于同一目录中。

scalaVersion := "2.11.2"

libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test"

谢谢

【问题讨论】:

  • 你检查过 IntelliJ 的 sbt 日志吗?当依赖项未正确解析(例如拼写错误、版本错误等)时,通常会发生这种情况。您还可以转到项目设置并查看库选项卡以查看是否实际包含 ScalaTest。您不需要scalatest.jar 文件,关于托管依赖关系的全部要点是 sbt 负责处理。如果您在创建项目时没有检查auto-import,那么您还必须在编辑build.sbt 时显式刷新sbt 构建。
  • 我进入了我的项目结构并改变了它。虽然它似乎已经在 Intellij 中自行解决,但编译后“org.scalatest”仍然无法识别。
  • 您能否提供完整的build.sbt?您不需要手动更改项目结构。让 IntelliJ 根据 build.sbt 为您做这件事,并为您的项目启用自动导入。
  • 我今天才开始使用sbt,所以我可能不明白你的问题。 build.sbt 文件还有更多内容吗?
  • 好的,以上是你的完整 sbt 文件。有了这个,你应该没问题。我建议也许关闭 IntelliJ,删除 .idea 目录,然后重新开始。导入项目(使用建议的 sbt 模型)并确保选中自动导入。寻找来自 sbt 的黄色警告,如果它无法解决依赖关系(可能是网络错误)。好的,这是另一个猜测:import org.scalatest._ 在源文件在 src/test/scala 中,对吗?因为使用% "test",您使 ScalaTest 仅可用于测试源!

标签: scala sbt scalatest


【解决方案1】:

所以按照惯例,你有两个源文件夹:

src/main/scala/...
src/test/scala/...

在 IntelliJ IDEA 中,第一个显示为蓝色,第二个显示为绿色。 sbt 中的库依赖与其中任何一个相关联,所以

"org.foo" % "bar_2.11" % "1.2.3"

是一个主要的依赖,可用于主要来源(也可用于测试,因为测试依赖于主要)。和

"org.foo" % "bar_2.11" % "1.2.3" % "test"

是一个测试依赖,只对测试源可用。我们的想法是,这些库不是您的产品所必需的,但仅用于运行单元测试。


在您的示例中,Scala-Test 仅可用于测试源,因此尝试从主要源导入它会失败。

【讨论】:

  • 简而言之,请确保您的测试文件在src/test/scala 下,否则导入将无法正常工作。
猜你喜欢
  • 2018-11-11
  • 1970-01-01
  • 1970-01-01
  • 2021-02-04
  • 2016-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多