【发布时间】:2021-06-09 19:36:30
【问题描述】:
所以我有这个设置
(resourceGenerators in Test) += Def.task {
val file = resourceManaged.value / "simplefolder" / "simplefile"
IO.write(file, "Hello world!")
Seq(file)
}.taskValue
在一些测试中我有
Source.fromResource("simplefolder/simplefile").mkString
我看到该文件是在 target/scala-*/resource_managed 文件夹中创建的,但我仍然无法在测试期间使用,因为该代码会引发 NullPointerException...我在那里做错了什么?
如果文件不是在文件夹simplefolder 中创建的,它可以工作,但是当在resourceManaged.value 文件夹内的另一个文件夹中创建时,它就不起作用
【问题讨论】:
-
我编辑了问题
-
可以加载非生成的资源文件吗?也许这是类加载器的问题,您是否尝试过分叉测试?您还可以使用
test:console在具有测试类路径的 REPL 中进行游戏,以查看是否可以列出所有资源。 -
完成...我运行了 sbt test:console。所有测试类确实都在那里,但是代码
Source.fromResource("simplefile").mkString确实在那里,它可以工作......但不是在测试期间:( -
您是否能够领导手动放置在
src/test/resources中的资源? -
是的,如果我手动放在那里,我可以正常阅读。顺便说一句,我编辑了之前的评论,因为在测试控制台中,我实际上可以读取文件
标签: scala sbt code-generation