簡體   English   中英

Java Selenium Junit Maven:參數測試的方法?

[英]Java Selenium Junit Maven: Way to parametrize tests?

我有一個測試套件正在我們創建的許多站點上運行。 大多數站點都以相同的方式工作,因此我可以不必在所有站點上運行所有測試,而不必擁有大量重復的代碼。

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

對於我讀入的屬性文件中包含URL和測試中所需的其他信息的每個站點,是否可以有一個屬性ignoreTests =,然后是要忽略的測試,然后當我在@Before部分中讀取屬性文件時我可以將每個@Test讀取的測試設置為忽略。

您在這里要問的所有內容都可以通過TestNG而不是Junit獲得。

這個好的教程中描述了測試用例的參數化。 至於選擇性運行測試用例,我認為分組會很有用, 這里是教程。

一般而言,TestNG具有出色的文檔 ,我建議您閱讀。

如果您不能接受TestNG,請查看教程,了解如何在Junit中進行測試參數化。 是有關Junit測試分組的信息。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM