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

Sbt test file cannot find value from src file

我的带有 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 中导入?

谢谢,任何答案都会投票!

假设您正在研究 class A;并且class A需要class B。只要A和B属于两个不同的包,就必须导入class B.

在您的例子中,SearchingSuite 和 BinarySearch 属于两个不同的包。具体来说,前者属于main源码包,后者属于test源码包。因此,您必须在 SearchingSuite 中导入 BinarySearch。否则会出现你遇到的编译错误

要使用 Utility 中的某些对象,您

导入local.util.Utility

如果效用是 class,或

导入local.util.Utility._

如果 Utility 是一个对象。

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