我使用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中导入?
谢谢,将投票支持任何答案!
答案 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将弹出一些建议。