Подтвердить что ты не робот

Как указать конфигурационный файл с 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 или я должен указывать конфигурационный файл для запуска тестов по-другому?

4b9b3361

Ответ 1

Тест

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

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

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

Ответ 2

Аналогичный подход состоит в том, чтобы просто передать файл конфигурации, который будет использоваться, при запуске теста 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