Я вручную создаю путь к классам для моего приложения 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. Я также использовал значение для $BOOTCP в качестве значения для -classpath, но у меня все еще была та же проблема.
Эта проблема возникает только тогда, когда я запускаю свои приемочные тесты, которые запускают тестовый сервер Play Framework. Таким образом, кажется вероятным, что это проблема с загрузкой основных конфигураций приложения в /conf, а не конфигураций /test/resources, которые загружаются, когда тесты модуля и интеграции успешно выполняются.