1

我有一個使用Play Framework 2.2.0中的Selenium的IntegrationSpec,我想針對多個環境運行它。Play Framework:爲集成測試設置環境

  1. 在dev環境中,我將啓動測試服務器並針對該服務器運行集成測試。
  2. 在測試環境中,我不會啓動測試服務器,而只是在每個測試環境中再次運行測試。 (對於每一個環境中,URL將是不同的。)

第一個明顯的選擇是通過命令行傳遞的環境系統屬性:

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

但上面播放2.2不起作用。在測試中,我嘗試按如下方式閱讀,返回值爲null

System.getProperty("env") 

我看到確切的問題here但答案是舊版本。在2.2中,它似乎不再起作用。

是否有另一種方法來設置此屬性,我可以在我的測試中使用它?

回答

2

我的理解是測試運行在分叉的JVM上,這就是爲什麼沒有設置屬性。您可以通過將以下內容添加到您的build.sbt來傳遞「env」參數:

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