Play Framework:为集成测试设置环境

时间:2014-01-29 23:23:27

标签: playframework-2.0 selenium-webdriver integration-testing

我在Play Framework 2.2.0中使用Selenium进行了IntegrationSpec,我想在多个环境中运行。

  1. 在开发环境中,我将启动测试服务器并对该服务器运行集成测试。
  2. 在测试环境中,我不会启动测试服务器,而是在每个测试环境中再次运行测试。 (对于每种环境,URL都会有所不同。)
  3. 第一个明显的选择是通过命令行将环境作为系统属性传递:

     play -Denv=test1 "test-only integration.IntegrationSpec"
    

    但是上面的内容在Play 2.2中不起作用。在测试中,我尝试按如下方式读取它,返回的值为null

    System.getProperty("env")
    

    我看到确切的问题here,但答案是旧版本。在2.2中它似乎不再起作用了。

    有没有其他方法来设置此属性,我可以在我的测试中使用它?

1 个答案:

答案 0 :(得分:2)

我的理解是测试在分叉的JVM中运行,这就是为什么没有设置属性的原因。您可以通过在build.sbt中添加以下内容来传递“env”参数:

javaOptions in Test += "-Denv=" + Option(System.getProperty("env")).getOrElse("default")