Testng提供了两种依赖实现

1.强制依赖:某个测试用例之前需要执行的依赖链中如果有一个失败,那么接下来所有的测试都不会被执行
2.顺序依赖(软依赖):顺序依赖的用处更多是用来检测一个测试链是否按照正确的顺序执行, 即使其中某个用例执行失败,但是也不会影响整个测试链的执行dependsOnMethods
(如果依赖的方法存在多个重载方法,那么所有的重载方法都将会被执行,如果只想执行一个方法,那么请使用dependsOnGroups)

一、简单依赖,看如下例子

package com.test;

import org.testng.Assert;
import org.testng.annotations.Test;
/**
* testng依赖测试
* @author linchaojiang
* 创建时间:2016-08-26
* 更新时间:2016-08-26
*
*/
public class TestNGDependsTest { @Test
public void test001(){
System.out.println("简单依赖");
Assert.assertTrue(true);
} @Test
public void test002(){
System.out.println("简单依赖");
Assert.assertTrue(false);
} @Test(dependsOnMethods = { "test001" })
public void test003(){
System.out.println("测试执行依赖test001,test001执行成功,此test执行");
} @Test(dependsOnMethods = { "test002" })
public void test004(){
System.out.println("测试执行依赖test002,test002执行失败,此test不执行");
} }

运行结果:

简单依赖
简单依赖
测试执行依赖test001,test001执行成功,此test执行

PASSED: test001
PASSED: test003
FAILED: test002

Default suite
Total tests run: 4, Failures: 1, Skips: 1

其中test004被跳过不执行

二、默认强制依赖,看如下例子:

import org.testng.annotations.Test;
/**
* testng依赖测试
* @author linchaojiang
* 创建时间:2016-08-26
* 更新时间:2016-08-26
*
*/
public class TestNGDependsTest { @Test(groups = { "init" })
public void test001() {
System.out.println("正常执行");
} @Test(groups = { "init2" })
public void test002() { throw new RuntimeException("抛出异常");
} @Test(dependsOnGroups = { "init.*" })
public void method1() {
System.err.println("是否执行");
} }

运行结果:

正常执行

PASSED: test001
FAILED: test002

Default suite
Total tests run: 3, Failures: 1, Skips: 1

从运行结果来看,test003被跳过了

如果依赖的方法发生异常而不能正确的执行时,默认情况下,接下来的方法将不会被执行(强制依赖,默认) 如果在方法体的注解上设置了alwaysRun = true,那么此时在依赖链中的任何一个方法出现异常都不会影响其它方法的执行

看如下例子:

import org.testng.annotations.Test;
/**
* testng依赖测试
* @author linchaojiang
* 创建时间:2016-08-26
* 更新时间:2016-08-26
*
*/
public class TestNGDependsTest { @Test(groups = { "init" })
public void test001() {
System.out.println("执行test002");
} @Test(groups = { "init2" })
public void test002() {
System.out.println("执行test002");
throw new RuntimeException("抛出异常");
} @Test(dependsOnGroups = { "init.*" }, alwaysRun = true)
public void method1() {
System.err.println("执行method1");
}

执行结果如下:

===============================================
Default test
Tests run: 3, Failures: 1, Skips: 0

最新文章

  1. MySQL 5.6 双机热备windows7
  2. input常用属性
  3. MySQL 升级
  4. 理解SQL Server是如何执行查询的 (3/3)
  5. java web 学习 --第七天(Java三级考试)
  6. 【WEB API项目实战干货系列】- 导航篇(十足干货分享)
  7. objectARX判断当前坐标系
  8. jQuery如何动态添加具有删除按钮的行
  9. Android--启动系统的剪切图像功能并返回结果
  10. CSS 常用命名
  11. POJ1611-The Suspects-ACM
  12. 【转载备忘】PowerDesigner16.5基本使用
  13. Redis的中并发问题的解决方案小结
  14. 开发HR人事考试系统介绍
  15. CA 工作流程
  16. Java NIO -- 阻塞和非阻塞
  17. xadmin系列之零碎的小点
  18. sqlplus 中 各列对齐设定
  19. mac eclipse 执行adb 命令,提示command not fount
  20. 转转转![Spring MVC] - 500/404错误处理-SimpleMappingExceptionResolver

热门文章

  1. javascript日期函数
  2. python 基础之格式化输出
  3. bootstrap 超大屏幕(Jumbotron)
  4. Bzoj 近期题目一句话题解
  5. 【dp】石子归并
  6. Yii2.0学习--目录结构
  7. 初级练手项目——用Python一步一步实现“智能”贪吃蛇!
  8. 逃离迷宫 HDU - 1728(bfs)
  9. WZK的减肥计划
  10. 水题:UVa213- Message Decoding