首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在TestNG中执行测试的顺序

在TestNG中执行测试的顺序
EN

Stack Overflow用户
提问于 2010-04-20 01:39:36
回答 15查看 150.3K关注 0票数 79

如何在TestNG中自定义测试的执行顺序?

例如:

代码语言:javascript
运行
复制
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");
  }
}

在上面的套件中,测试的执行顺序是任意的。对于一次执行,输出可能是:

代码语言:javascript
运行
复制
test1
test3
test2

如何按照编写测试的顺序执行测试?

EN

回答 15

Stack Overflow用户

发布于 2013-09-11 05:38:30

这将会起作用。

代码语言:javascript
运行
复制
@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...)解决。

票数 88
EN

Stack Overflow用户

发布于 2010-04-20 02:37:52

在TestNG中,您可以使用dependsOnMethods和/或dependsOnGroups:

代码语言:javascript
运行
复制
@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

票数 65
EN

Stack Overflow用户

发布于 2013-09-09 07:33:56

要处理有问题的特定场景,请执行以下操作:

代码语言:javascript
运行
复制
@Test
public void Test1() {

}

@Test (dependsOnMethods={"Test1"})
public void Test2() {

}

@Test (dependsOnMethods={"Test2"})
public void Test3() {

}
票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2669576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档