我是scala的新手。我试图在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
完整代码可在此处找到-https://github.com/practice09/CSVParser
谁能告诉我我做错了什么地方?
答案 0 :(得分:2)
一个问题是测试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
所以尝试探索它的设置方式以及适合您的项目的要求。
答案 1 :(得分:0)