如何为sbt test指定sbt 0.12.2的配置文件?

时间:2013-03-14 00:37:07

标签: playframework playframework-2.0 sbt playframework-2.1

我玩了!使用单元测试的项目,我正在尝试使用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的错误,还是我应该以不同的方式指定运行测试的配置文件?

2 个答案:

答案 0 :(得分:19)

测试是使用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

答案 1 :(得分: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