[英]Java Selenium Junit Maven: Way to parametrize tests?
我有一個測試套件正在我們創建的許多站點上運行。 大多數站點都以相同的方式工作,因此我可以不必在所有站點上運行所有測試,而不必擁有大量重復的代碼。
我現在有幾個測試,我只想在幾個站點上運行,如果URL是站點A,B或C的話,有沒有辦法只運行這些測試?
對於我讀入的屬性文件中包含URL和測試中所需的其他信息的每個站點,是否可以有一個屬性ignoreTests =,然后是要忽略的測試,然后當我在@Before部分中讀取屬性文件時我可以將每個@Test讀取的測試設置為忽略。
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");
是的,您可以使用JUnit進行參數化,但是需要確保使用的是JUNit 4.11或更高版本。 在此之前,JUNit沒有參數化。 JUnit使用2-D對象數組(列表),其數據提供程序和注釋幾乎完全類似於TestNG。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.