如何在TestNG中自定义测试的执行顺序?
例如:
public class Test1 {
@Test
public void test1() {
System.out.println("test1");
}
@Test
public void test2() {
System.out.println("test2");
}
@Test
public void test3() {
System.out.println("test3");
}
}
在上面的套件中,测试的执行顺序是任意的。对于一次执行,输出可能是:
test1
test3
test2
如何按照编写测试的顺序执行测试?
发布于 2013-09-11 05:38:30
这将会起作用。
@Test(priority=1)
public void Test1() {
}
@Test(priority=2)
public void Test2() {
}
@Test(priority=3)
public void Test3() {
}
priority
鼓励执行顺序,但不保证上一个优先级已完成。test3
可能会在test2
完成之前启动。如果需要保证,则声明一个依赖项。
与声明依赖关系的解决方案不同,使用priority
的测试即使一次测试失败也会执行。根据documentation的说法,这个依赖关系的问题可以用@Test(...alwaysRun = true...)
解决。
发布于 2010-04-20 02:37:52
在TestNG中,您可以使用dependsOnMethods和/或dependsOnGroups:
@Test(groups = "a")
public void f1() {}
@Test(groups = "a")
public void f2() {}
@Test(dependsOnGroups = "a")
public void g() {}
在这种情况下,g()仅在f1()和f2()完成并成功之后运行。
您将在文档中找到许多示例:http://testng.org/doc/documentation-main.html#test-groups
发布于 2013-09-09 07:33:56
要处理有问题的特定场景,请执行以下操作:
@Test
public void Test1() {
}
@Test (dependsOnMethods={"Test1"})
public void Test2() {
}
@Test (dependsOnMethods={"Test2"})
public void Test3() {
}
https://stackoverflow.com/questions/2669576
复制相似问题