有時,我們需要以特定順序調用測試用例中的方法,或者可能希望在方法之間共享一些數據和狀態。
此時需要用到依賴,TestNG支持這種依賴關系,支持在測試方法之間顯示依賴的聲明。
包括兩種依賴:方法依賴和組依賴
在@Test注解中使用屬性dependsOnMethods和dependsOnGroups來實現。
如果被依賴的方法執行失敗,則將跳過所有后續測試方法!!!
以下演示方法依賴:
package com.janson.depend; import org.testng.Assert; import org.testng.annotations.Test; public class DependsOnMethodTest { @Test public void dependTest1() { //Assert.fail("error"); System.out.println("dependTest1 運行!"); } @Test(dependsOnMethods = {"dependTest1"}) public void dependTest2() { System.out.println("dependTest2 運行!"); } }
在執行dependTest2()方法時會先執行dependTest1()方法,
如果dependTest1()方法執行失敗,dependTest2()方法將被忽略,不執行。
================================================================================================================
以下演示組依賴:
package com.janson.depend; import org.testng.Assert; import org.testng.annotations.Test; public class DependsOnGroupsTest { @Test(groups = "login") public void dependGroupsTest1() { System.out.println("歡迎登錄"); } @Test(groups = "charge") public void dependGroupsTest2() { Assert.fail("error..."); System.out.println("你已成功充值"); } @Test(dependsOnGroups = "login") public void dependGroupsTest3() { System.out.println("請您操作"); } //同時依賴多個組,用{} @Test(dependsOnGroups = {"login","charge"}) public void dependGroupsTest4() { System.out.println("請您選擇需要購買的產品"); } }
執行dependGroupsTest3()時,會依賴login組
執行dependGroupsTest4()時會同時依賴login和charge組
因為login組不會報錯,所以正常執行。而charge組執行報錯,所以導致dependGroupsTest4()方法不會執行!