我有一个IntegrationsPec使用Selenium在Play Framework 2.2.0中我想在多个环境中遇到的Intemationpec。
- 在开发环境中,我将启动测试服务器并针对该服务器运行集成测试。
- 在测试环境中,我不会启动测试服务器,而只需再次运行每个测试环境即可。(对于每个环境,URL都会有所不同。)
第一个明显的选择是通过命令行作为系统属性通过:
play -Denv=test1 "test-only integration.IntegrationSpec"
,但以上在播放2.2中不起作用。在测试中,我尝试按以下方式读取它,并且返回的值是null
。
System.getProperty("env")
我看到这里问的确切问题,但答案是针对较旧版本的。在2.2中,它似乎不再起作用。
有其他方法可以在测试中使用它可以使用它吗?
我的理解是,测试在分叉的JVM中进行,这就是为什么未设置属性的原因。您可以通过在构建中添加以下来传递" env"参数。SBT:
javaOptions in Test += "-Denv=" + Option(System.getProperty("env")).getOrElse("default")