【发布时间】:2021-12-31 12:08:57
【问题描述】:
我正在尝试读取位于我的/src/test/resources/data 文件夹中的文件“my_data.txt”。
––– src
–– main
–– test
––– resources
––– data
––– my_data.txt
我有以下代码可以做到这一点:
val filename = getClass.getResource("/src/test/resources/data/my_data.txt").getPath
当我编译它时,编译很顺利,但是,当我在鸭子中运行测试时,我收到以下错误消息:
java.lang.NullPointerException
at (xxxx.scala:128)
at org.scalatest.OutcomeOf.outcomeOf(OutcomeOf.scala:85)
at org.scalatest.OutcomeOf.outcomeOf$(OutcomeOf.scala:83)
at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
at org.scalatest.Transformer.apply(Transformer.scala:22)
at org.scalatest.Transformer.apply(Transformer.scala:20)
at org.scalatest.FunSpecLike$$anon$1.apply(FunSpecLike.scala:454)
at org.scalatest.TestSuite.withFixture(TestSuite.scala:196)
at org.scalatest.TestSuite.withFixture$(TestSuite.scala:195)
at org.scalatest.FunSpec.withFixture(FunSpec.scala:1630)
at org.scalatest.FunSpecLike.invokeWithFixture$1(FunSpecLike.scala:452)
at org.scalatest.FunSpecLike.$anonfun$runTest$1(FunSpecLike.scala:464)
at org.scalatest.SuperEngine.runTestImpl(Engine.scala:289)
at org.scalatest.FunSpecLike.runTest(FunSpecLike.scala:464)
at org.scalatest.FunSpecLike.runTest$(FunSpecLike.scala:446)
When I try to print the path that I am reading from I got `null` as an output.
又一次尝试
除了上面我尝试了以下代码:
val ss = scala.io.Source.fromResource("/src/test/resources/data/my_data.txt")ClassLoader.getSystemResource("/src/test/resources/data/my_data.txt").getPath
另外,我在POM 文件中的资源中添加了src/test/resources/data
终于
正如this 提到的,我检查了编译器中是否包含.txt(我正在使用MAC)
【问题讨论】:
-
getClass.getResource("/data/my_data.txt")工作吗? -
正如我上面提到的,它没有。
-
注意路径本身。我评论了从资源目录(
/data/my_data.txt)开始的路径,但是在您的问题中使用了绝对路径。 -
这就是我的代码中的内容:
val fileName = getClass.getResource("/data/my_data.txt").getFile()
标签: intellij-idea resources pom.xml