2013-03-14 7 views
11

Ich habe ein Spiel! Projekt mit Komponententests und ich versuche, Tests auf meiner Staging-Umgebung mit sbt. Vor dem Upgrade auf Play 2.1, als ich Play 2.0.4 und sbt 0.11.3 verwendet habe, konnte ich $ sbt -Dconfig.file=conf/staging.conf test tun. Jetzt sbt test scheint die Standard-application.conf zu verwenden, egal was ich für -Dconfig.file.Wie gebe ich eine Konfigurationsdatei mit sbt 0.12.2 für sbt test an?

sbt start -Dconfig.file=conf/staging.conf funktioniert immer noch gut. Ist dieses Verhalten ein Fehler mit sbt 0.12.2 oder sollte ich eine Konfigurationsdatei angeben, um Tests auf andere Weise auszuführen?

+0

laufen Wenn Sie Java-Optionen nur 'sbt test' hinzufügen möchten, und nicht andere Konfigurationen dann können Sie tun 'javaOptions in Test + =" -Dconfig.file = conf/test.conf "' [link] (http://stackoverflow.com/questions/7121889/how-can-i-pass -jvm-options-to-sbt-to-use-wenn-laufen-die-app-oder-test-cases) – fpearsall

Antwort

18

Test verwendet Gabel jvm. Verwenden Sie die Einstellung javaOptions sbt, um jvm-Optionen an sie zu übergeben, z.

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

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

10

ähnlicher Ansatz ist es, nur die Konfigurationsdatei übergeben, zu verwenden, während des Auslösen den sbt Tests

Zuerst wird in der Build.scala Datei

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 
) 

Dann in t er Kommandozeile den Test mit integ.conf

sbt -Dtest.config=integ test 

zu verwenden, um den Standard application.conf

sbt test 
+0

danke, das hat meine gelöst Problem. – ttt