@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()方法不会执行!
网友评论