我正在为我的 Play/Scala/Akka 应用程序手动构建类路径,因此我可以使用 ScalaTest 运行程序在 CI 管道的不同阶段测试我的应用程序,而无需重新编译。但是,我收到以下错误:
java.lang.NullPointerException:
at com.typesafe.config.impl.Parseable$ParseableResources.rawParseValue(Parseable.java:509)
at com.typesafe.config.impl.Parseable$ParseableResources.rawParseValue(Parseable.java:492)
at com.typesafe.config.impl.Parseable.parseValue(Parseable.java:171)
at com.typesafe.config.impl.Parseable.parseValue(Parseable.java:165)
at com.typesafe.config.impl.Parseable.parse(Parseable.java:204)
at com.typesafe.config.impl.ConfigImpl$1.call(ConfigImpl.java:368)
at com.typesafe.config.impl.ConfigImpl$1.call(ConfigImpl.java:365)
at com.typesafe.config.impl.ConfigImpl$LoaderCache.getOrElseUpdate(ConfigImpl.java:58)
at com.typesafe.config.impl.ConfigImpl.computeCachedConfig(ConfigImpl.java:86)
at com.typesafe.config.impl.ConfigImpl.defaultReference(ConfigImpl.java:365)
这是我正在运行的命令:
/usr/lib/jvm/java-7-openjdk//bin/java -Xmx256M -Xms32M -Xbootclasspath/a:$BOOTCP -classpath '""' -Dscala.home=/usr/opt/scala -Dscala.usejavacp=true -jar /home/nick/repos/testrunnnertest/lib/scalatest.jar -R target/scala-2.10/test-classes -o
$BOOTCP 的值是大量依赖项列表,包括应用程序 jar、.ivy2 中的依赖项以及包含配置文件的文件夹(/conf、/test/resources)。我从 Scala shell 脚本中复制了这个命令。我还使用 $BOOTCP 的值作为 -classpath 的值,但我仍然遇到同样的问题。
仅当我运行启动 Play Framework 测试服务器的验收测试时才会出现此问题。因此,似乎在 /conf 中加载主应用程序配置而不是 /test/resources 配置似乎是在单元和集成测试愉快运行时加载 find 的问题。