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

时间:2014-12-30 08:06:23

标签: scala intellij-idea sbt

我正在尝试制作自己的自定义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尝试了它。结果是一样的。

1 个答案:

答案 0 :(得分:2)

您忘记了new关键字。没有它,编译器会查找名为CSVStream伴随对象,而不是类。由于没有,它抱怨。添加new即可。