Play Framework:配置系统属性

时间:2014-03-11 00:52:45

标签: scala playframework sbt

在游戏框架(2.2.1& sbt 0.13)中,我有一个IntegrationSpec,可以显示TestServer。我需要能够为TestServer设置特定于SSL的系统属性。到目前为止,我能够正确设置它的唯一方法是将它们作为命令行属性传递,如下面的

play -Djavax.net.ssl.keyStore=... -Djavax.net.ssl.keyStorePassword=.... -D... test

我希望测试只使用play test运行。为了在Build.scala中,我配置了SBT javaOptions,如下所示

val main = play.Project(appName, appVersion, appDependencies).settings(
    Keys.fork in Test := false,
    javaOptions in Test += "-Dconfig.file=conf/application.test.conf")

在application.test.conf中,我设置了所有系统属性。有了这个,TestServer甚至没有使用application.test.conf。我无法弄清楚原因。所以我想我会尝试以下方法:

play -Dconfig.file=conf/application.test.conf test

TestServer确实使用了application.test.conf但是没有使用文件中配置的系统属性(javax.net.ssl.keyStore =“...”等)。

所以我有两个问题

  1. 如何仅使用play test启用此功能? 。 (我不想将长属性地图传递给FakeApplication中的TestServer
  2. 当我运行play -Dconfig.file=conf/application.test.conf test时,为什么application.test.conf中配置的系统属性未被使用?

1 个答案:

答案 0 :(得分:0)

我不确定这是否适用于设置读取配置文件的属性,但您可以使用System.setProperty设置各个属性,如下所示:

System.setProperty("application.secret","psssst!")