2013-09-24 68 views
0

我有一個測試套件正在我們創建的一堆網站上運行。大多數網站的工作方式相同,所以不必重複大量代碼,我可以在所有網站上運行所有測試。Java Selenium Junit Maven:參數化測試的方法?

我現在有幾個測試,我只想運行在一些網站上,有沒有辦法只運行這些測試,如果網址是網站A,B或C?

對於我在屬性文件中讀取的每個站點,它具有測試中所需的url和其他信息,是否有可能擁有一個屬性ignoreTests =,然後忽略測試,然後當我讀取屬性文件在測試的@Before部分中,我可以設置每個@Test讀入以被忽略。

回答

0

所有你在這裏問的都可以用TestNG而不是Junit來獲得。

測試用例的參數化描述見this很好的教程。 至於測試用例的選擇性運行,我認爲分組將是有用的,here是教程。

通常TestNG hase greate documentation我建議您閱讀。

如果您無法開發TestNG,請參閱this關於Junit中測試參數化的教程。 Here是關於Junit測試分組的。

0

Junit使用Assume來動態忽略測試。

使用@Before方法將URL寫入字段。您可以使用Assume來根據URL進行插入測試。如果URL不是「firstValidUrl」或「secondValidUrl」,則忽略以下測試。

org.junit.Assume.assumeTrue(url.equals("firstValidUrl") || url.equals("secondValidUrl")); 

可以使用Hamcrest的好得多聲明:

org.junit.Assume.assumeTrue(url, org.hamcrest.Matchers.isIn("firstValidUrl", "secondValidUrl")); 

使用靜態導入和Hamcrest:

assumeTrue(url, isIn("firstValidUrl", "secondValidUrl"); 
0

是的,你可以使用JUnit參數化,但你需要確保你正在使用JUNit 4.11或更新版本。在此之前JUNit沒有參數化。數據提供者和註解幾乎完全像TestNG,使用2-D對象數組(List)。