SBT 无法解析在 src/test/scala 测试类中声明的类



我正在尝试制作自己的自定义CSV阅读器。我正在使用带有 sbt 和 specs2 测试框架的 IntelliJ IDEA 14。

我在src/main中声明的类如下:

import java.io.FileInputStream
import scala.io.Source
class CSVStream(filePath:String) {
  val csvStream = Source.fromInputStream(new FileInputStream(filePath)).getLines()
  val headers = csvStream.next().split("\,", -1)
}

src/test测试文件的内容如下:

import org.specs2.mutable._
object CSVStreamSpec {
  val csvSourcePath = getClass.getResource("/csv_source.csv").getPath
}
class CSVStreamSpec extends Specification {
  import CSVStreamLib.CSVStreamSpec._
  "The CSV Stream reader" should {
    "Extract the header" in {
      val csvSource = CSVStream(csvSourcePath)
    }
  }
}

build.sbt文件包含以下内容:

name := "csvStreamLib"
version := "1.0"
scalaVersion := "2.11.4"
libraryDependencies ++= Seq("org.specs2" %% "specs2-core" % "2.4.15" % "test")
parallelExecution in Test := false

键入测试时遇到的错误如下:

[error] /Users/raiyan/IdeaProjects/csvStreamLib/src/test/scala/csvStreamSpec.scala:18: not found: value CSVStream
[error]       val csvSource = CSVStream(csvSourcePath)
[error]                       ^
[error] one error found
[error] (test:compile) Compilation failed
[error] Total time: 23 s, completed 30-Dec-2014 07:44:46

如何使测试文件中的 CSVStreamSpec 类可以访问 CSVStream 类?

更新:

我在命令行中使用 sbt 尝试过。结果是一样的。

您忘记了new关键字。如果没有它,编译器将查找名为 CSVStream伴随对象,而不是类。既然没有,它就抱怨。添加new,它就会起作用。

最新更新