Scala 无法从测试中解析依赖项

Scala 无法从测试中解析依赖项,scala,intellij-idea,sbt,scalatest,Scala,Intellij Idea,Sbt,Scalatest,我是斯卡拉的新手。我试图在IntellIj中创建一个scala项目,并添加一个测试类。 我在sbt中使用以下2个依赖项 libraryDependencies += ("org.scalactic" %% "scalactic" % "3.0.8") // https://mvnrepository.com/artifact/org.scalatest/scalatest libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8

我是斯卡拉的新手。我试图在IntellIj中创建一个scala项目,并添加一个测试类。 我在sbt中使用以下2个依赖项

libraryDependencies += ("org.scalactic" %% "scalactic" % "3.0.8")
// https://mvnrepository.com/artifact/org.scalatest/scalatest
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8" % Test
但是我无法使用测试类“ProcessCSVTest.scala”中的FunSuite类进行测试,因为它给出了一个编译错误

虽然我可以在IntellIj中看到外部库中的依赖项

Build.sbt文件

name := "CSVParser"

version := "0.1"

scalaVersion := "2.13.0"

libraryDependencies += ("org.scalactic" %% "scalactic" % "3.0.8")
// https://mvnrepository.com/artifact/org.scalatest/scalatest
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8" % Test
整个代码可在此处找到-


谁能告诉我哪里做错了吗?

因为
FunSuite
在一个包中,您需要添加

import org.scalatest.FunSuite

如果您将光标放在它上面,并且,您应该会得到修复它的建议。

因为
FunSuite
在一个包中,您需要添加

import org.scalatest.FunSuite

如果将光标放在它上面,您应该会得到一个修复它的建议。

一个问题是测试
ProcessCSVTest。scala
位于
main
源下,这意味着ScalaTest需要位于主类路径上,但是在
build.sbt
中,ScalaTest依赖关系的作用域是
test
类路径

libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8" % Test
因此,如果您像这样删除
Test
范围

libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8"
然后ScalaTest将在主类路径上结束,我们可以添加以下导入

import org.scalatest.FunSuite
然而,我的建议是将测试从主要源中移出,并将它们放在
src/test/scala/
下,然后像前面一样在
test
下确定依赖关系的范围

libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8" % Test
下面的命令使用sbt期望的正确项目结构构建了一个示例

sbt new scala/scala-seed.g8

因此,请尝试探索如何设置它并使您的项目与之匹配。

一个问题是测试
ProcessCSVTest。scala
位于
main
源下,这意味着ScalaTest需要位于主类路径上,但是在
build中。sbt
ScalaTest依赖关系的范围是
test
类路径

libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8" % Test
因此,如果您像这样删除
Test
范围

libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8"
然后ScalaTest将在主类路径上结束,我们可以添加以下导入

import org.scalatest.FunSuite
然而,我的建议是将测试从主要源中移出,并将它们放在
src/test/scala/
下,然后像前面一样在
test
下确定依赖关系的范围

libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8" % Test
下面的命令使用sbt期望的正确项目结构构建了一个示例

sbt new scala/scala-seed.g8

因此,请尝试探索它是如何设置的,并使您的项目与之匹配。

我在屏幕快照中没有看到导入语句我在屏幕快照中没有看到导入语句