博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TestNG中测试方法的依赖关系详解
阅读量:4179 次
发布时间:2019-05-26

本文共 1368 字,大约阅读时间需要 4 分钟。

在TestNG的测试中,一个测试方法的执行往往需要依赖其他测试方法的先期或延后执行,这种测试方法的执行先后顺序就被称为测试方法之间的依赖关系。

1. 一个被依赖的测试方法

测试方法之间的依赖关系往往是在测试类中定义的,如下所示:

@Testpublic void serverStartedOk() {}//被依赖的测试方法 @Test(dependsOnMethods = { "serverStartedOk" })public void method1() {}

2.多个被依赖的测试方法

一个测试方法可能依赖一个测试方法,也可能依赖多个测试方法。对于多个被依赖的测试方法,可以通过方法名直接给出,也可以通过组名给出被依赖的测试方法。

1) 在测试类中通过方法名给出被依赖的测试方法,示例如下:

@Testpublic void serverStartedOk1() {} @Testpublic void serverStartedOk2() {}@Test(dependsOnMethods = { "serverStartedOk1",  "serverStartedOk2" })public void method1() {}

2) 在测试类中通过组名给出被依赖的测试方法,示例如下:

@Test(groups = { "init" })public void serverStartedOk() {} @Test(groups = { "init" })public void initEnvironment() {} @Test(dependsOnGroups = { "init.*" })public void method1() {}

3) 在testng.xml配置文件中通过组名给出被依赖的测试方法,示例如下:

注意:多个被依赖的组之间是空格分隔的。

显然,对于跨测试类之间的依赖,如果测试类之间不是父子继承关系,则只能在testng.xml配置文件中定义依赖关系。

3.硬依赖(hard dependencies)与软依赖(soft dependencies)

顺利的情况下,被依赖的测试方法成功执行后,再执行当前测试方法。但是问题是被依赖的测试方法如果执行失败了呢?是否还要继续执行当前测试方法呢?

根据被依赖的测试方法执行失败时,是否执行当前测试方法,将依赖分为硬依赖和软依赖。对于硬依赖,被依赖的测试方法执行失败,则当前测试方法不执行,只是被标记为SKIP。对于软依赖,被依赖的测试方法执行失败与否,不影响当前的测试方法仍旧执行。

不特别声明,默认是硬依赖,即默认alwaysRun=false,如上述示例都是硬依赖。

对于软依赖,在测试类中声明测试方法时,需要为@Test设置alwaysRun=true属性,示例如下:

@Testpublic void serverStartedOk() {} @Test(alwaysRun = true, dependsOnMethods = { "serverStartedOk" })public void method1() {}

 

转载地址:http://mslai.baihongyu.com/

你可能感兴趣的文章
Git 常用命令总结(二)
查看>>
JAVA 并发——synchronized的分析
查看>>
Echarts——使用 dataset 管理数据
查看>>
DES 加解密工具类
查看>>
JAVA乱码问题——URL中的+,空格,/,?,%,#,&,= 及转义处理
查看>>
Base64编解码工具类
查看>>
使用IntelliJ IDEA2018创建Maven多模块项目
查看>>
SpringBoot多模块项目实践(Multi-Module)
查看>>
第一篇: 服务的注册与发现Eureka(Greenwich版)
查看>>
第二篇: 服务消费者(rest+ribbon)(Greenwich版本)
查看>>
第三篇: 服务消费者(Feign)(Greenwich版本)
查看>>
获取客户的真实IP地址
查看>>
第四篇: 熔断器(Ribbon+Feign)(Greenwich版本)
查看>>
第五篇: 路由网关(zuul)(Greenwich版本)
查看>>
Git 常用命令总结(三)
查看>>
Linux的常用命令(一)
查看>>
Linux的常用命令(二)
查看>>
第六篇: 分布式配置中心(Greenwich版本)
查看>>
SpringBoot | 配置logback-spring.xml
查看>>
SpringBoot | 第一章:构建第一个SpringBoot工程
查看>>