TestNg 顺序依赖
1. 在TestNG的测试中,一个测试方法的执行往往需要依赖其他测试方法的先期或延后执行,这种测试方法的执行先后顺序就被称为测试方法之间的依赖关系。
@Test public void serverStartedOk() {}//被依赖的测试方法 @Test(dependsOnMethods = { "serverStartedOk" }) public void method1() {}
2.多个被依赖的测试方法
一个测试方法可能依赖一个测试方法,也可能依赖多个测试方法。对于多个被依赖的测试方法,可以通过方法名直接给出,也可以通过组名给出被依赖的测试方法。
1) 在测试类中通过方法名给出被依赖的测试方法,示例如下:
@Test public void serverStartedOk1() {} @Test public void serverStartedOk2() {} @Test(dependsOnMethods = { "serverStartedOk1", "serverStartedOk2" }) public void method1() {}
2) 在测试类中通过组名给出被依赖的测试方法.
3) 在testng.xml配置文件中通过组名给出被依赖的测试方法:
<test name="Alice Test"> <groups> <dependencies> <group name="c" depends-on="a b" /> <group name="d" depends-on="c" /> </dependencies> </groups> </test>
强制依赖: 如果被依赖的某一个方法发生了异常,那么之后的方法都不会被执行(默认)
@Test(dependsOnGroups = { "init.*" }) public void method1() { System.err.println("I am over here....."); }
顺序依赖:无论被依赖的方法是否出现异常,后续的方法都会被执行,通过alwaysRun=“true”来配置
@Test(dependsOnGroups = { "init.*" }, alwaysRun = true) public void method1() { System.err.println("I am over here....."); }
另外
使用<groups>
标记在testng.xml
文件中指定分组。 它可以在<test>
或<suite>
标签下找到。 <suite>
标签中指定分组适用于其下的所有<test>
标签。
在测试类里面,“分组”可以在类上应用。 在下面的示例中,此时每个公共方法都属于分组:
@Test(groups = "smoke-test") public class TestGroupOnClass{ ..... }