14

私は遊びを持っています!単体テストを含むプロジェクトで、sbt を使用してステージング環境でテストを実行しようとしています。Play 2.1 にアップグレードする前は、Play 2.0.4 と sbt 0.11.3 を使用していたときに、$ sbt -Dconfig.file=conf/staging.conf test. -Dconfig.filesbt testに何を指定しても、デフォルトの application.conf を使用するようになりました。

sbt start -Dconfig.file=conf/staging.confまだ正常に動作します。この動作は sbt 0.12.2 のバグですか、それとも別の方法でテストを実行するための構成ファイルを指定する必要がありますか?

4

2 に答える 2

20

テストはフォークされた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

于 2013-03-14T23:24:01.650 に答える
11

同様のアプローチは、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 
于 2013-08-09T06:01:51.827 に答える