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