Как указать файл конфигурации с sbt 0.12.2 для теста sbt?

У меня есть Плей! проект с модульными тестами, и я пытаюсь запустить тесты в своей промежуточной среде, используя sbt. До того, как я обновился до Play 2.1, когда я использовал Play 2.0.4 и sbt 0.11.3, я мог делать $ sbt -Dconfig.file=conf/staging.conf test. Теперь sbt test, похоже, использует файл application.conf по умолчанию, независимо от того, что я укажу для -Dconfig.file.

sbt start -Dconfig.file=conf/staging.conf все еще работает нормально. Является ли такое поведение ошибкой с sbt 0.12.2 или я должен указать файл конфигурации для запуска тестов по-другому?


person fpearsall    schedule 14.03.2013    source источник
comment
Если вы хотите добавить параметры Java только к sbt test, а не к другим конфигурациям, вы можете сделать javaOptions in Test += "-Dconfig.file=conf/test.conf" ссылка   -  person fpearsall    schedule 15.03.2013


Ответы (2)


тест использует разветвленный jvm. Используйте параметр javaOptions sbt, чтобы передать ему параметры jvm, например.

javaOptions ++= Seq("-Dconfig.file=conf/staging.conf")
or

javaOptions ++= collection.JavaConversions.propertiesAsScalaMap(System.getProperties).map{ case (key,value) => "-D" + key + "=" +value }.toSeq

person OlegYch    schedule 14.03.2013

Аналогичный подход заключается в том, чтобы просто передать файл конфигурации для использования при запуске теста sbt.

Сначала в файле Build.scala

val testOptions = "-Dconfig.file=conf/" + Option(System.getProperty("test.config")).getOrElse("application") + ".conf"

val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
    javaOptions in Test += testOptions
)

Затем в командной строке запустить тест с помощью integ.conf

sbt -Dtest.config=integ test

использовать application.conf по умолчанию

sbt test 
person C.Karthik    schedule 09.08.2013