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 会弹出一些建议。
我的带有 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 会弹出一些建议。