我有一个scala项目,它使用sbt进行构建/测试/等。我有一个单元测试文件:
$SBT_PROJECT_ROOT/src/test/scala/foo/bar/SomeSpec.scala
我还有一个测试资源:
$SBT_PROJECT_ROOT/src/test/resources/some_test_resource.txt
我尝试使用以下命令从单元测试中访问此文件:
import org.scalatest._
import scala.io.Source
class TestFiddleParser extends FlatSpec with Matchers {
"This unit test" should "find the test resource" in {
val source = Source.fromURL(getClass.getResource("/some_test_resource.txt"))
val content = source.mkString
println(content.take(1000))
}
}
当我在$ SBT_PROJECT_ROOT文件夹中的commdand行上并运行命令时:
sbt test
我可以看到正在打印的测试文件的前1000个字符。成功了!
现在我正在使用eclipse(Scala-IDE)进行开发。我通过sbteclipse
(https://github.com/typesafehub/sbteclipse)获得eclipse支持,并使用ScalaTest
eclipse插件(http://www.scalatest.org/user_guide/using_scalatest_with_eclipse)在eclipse中运行单元测试。
当我在eclipse中运行此单元测试时,我在null
中得到val source
。我认为这意味着找不到资源。
可能是什么问题?
答案 0 :(得分:0)
好吧,实际上很明显,只需运行
sbt eclipse
再次 AFTER 将测试资源添加到src/test/resources
文件夹。