Sbt测试文件无法从src文件中找到值

时间:2015-11-16 01:45:34

标签: scala import build sbt scalatest

我使用scala-test的sbt项目是布局标准:

sbt-example
    build.sbt
    src/main/scala/local/search/BinarySearch.scala
    src/main/scala/local/util/Utility.scala
    src/test/scala/local/search/SearchingSuite.scala

我的build.sbt非常简单:

name := "helloworld"
version := "1.0"
scalaVersion := "2.11.7"

libraryDependencies ++= Seq(
    "org.scalatest" %% "scalatest" % "2.2.4"
)

我的BinarySearch.scala看起来像:

package local.search

object BinarySearch {
    // def ...
}

我的SearchingSuite.scala看起来像:

package local.search

import org.scalatest.FunSuite

class SearchingSuite extends FunSuite{
    // call functions from BinarySearch object
}

运行命令是:

sbt compile
sbt "test-only local.search.SearchingSuite"

然后sbt引发错误:

not found: value BinarySearch

我的代码出了什么问题?如果我需要使用Utility.scala中的一些对象,如何在SearchingSuite.scala中导入?

谢谢,将投票支持任何答案!

1 个答案:

答案 0 :(得分:0)

我们假设你正在上A班; A类需要B类。只要A和B属于两个不同的包,就必须导入B类。

在您的情况下,SearchingSuite和BinarySearch属于两个不同的包。特别是,前者属于 main 源包,后者属于 test 源包。因此,您必须在SearchingSuite中导入BinarySearch。否则,会出现一个编译错误,就像你遇到的一样。

要使用Utility中的某个对象,你

导入local.util.Utility

如果Utility是一个类,或

导入local.util.Utility ._

如果Utility是一个对象。

如果您正在使用某些IDE,例如Intellij或Eclipse,请右键单击错误突出显示,IDE将弹出一些建议。