testng依赖
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
testng依赖的更多相关文章
- TestNg依赖配置基础用法(单一方法依赖)------TestNg依赖详解(一)
TestNg依赖测试之简单方法依赖,通过dependsOnMethods属性来配置依赖方法 原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong J ...
- testng入门教程9 TestNG依赖测试
有时候,你可能需要在一个特定的顺序调用方法在测试案例,或你想分享一些数据和方法之间的状态.TestNG支持这种依赖测试方法之间的显式依赖它支持声明. TestNG允许指定依赖,无论与否: 使用属性de ...
- 解决:在pom.xml处理添加testng依赖之外,需对testng进行关联
问题描述:当maven项目中下载了testng包,在调用后,执行maven test,未执行testng.xml中指定的测试类. 解决:在pom.xml处理添加testng依赖之外,需对testng进 ...
- TestNg依靠先进的采用强制的依赖,并依赖序列的------TestNg依赖于特定的解释(两)
原创文章,版权所有所有,转载,归因:http://blog.csdn.net/wanghantong TestNg使用dependsOnGroups属性来进行依赖測试, 測试方法依赖于某个或某些方法, ...
- Java - Test - TestNG: Idea 添加 TestNG 依赖
1. 概述 Idea 开发的 maven 添加 testng 依赖 2. 背景 最近复习 TestNG 尝试搭建环境 发现教材和网上很多的教程, 都是 eclipse 的 我用的是 idea 这个貌似 ...
- 《手把手教你》系列基础篇(七十七)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试- 上篇(详解教程)
1.简介 今天主要是讲解和分享:TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用dependsOnMethods,testNG会自动根据@Test方法名称 ...
- 《手把手教你》系列基础篇(七十八)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试- 中篇(详解教程)
1.简介 上一篇讲解了依赖测试的各种方法,今天继续讲解依赖测试的方法,这一篇主要是讲解和分享通过xml文件配置组名依赖方法( 主要是测试组的用法).废话不说,直接上干货. 2.实例 测试组:一个组可包 ...
- 《手把手教你》系列基础篇(八十)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试-番外篇(详解教程)
1.简介 经过前边几篇知识点的介绍,今天宏哥就在实际测试中应用一下前边所学的依赖测试.这一篇主要介绍在TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用de ...
- TestNg依赖详解(三)------灵活的文件配置依赖
配置型的依赖测试,让依赖测试不局限于测试代码中,在XML文件中进行灵活的依赖配置 原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong Javaco ...
随机推荐
- 在DataGridView控件中验证数据输入
实现效果: 知识运用: DataGridView控件的公共事件CellValidating //将System.Windows.Forms.DataGridViewCellValidatingEven ...
- Python——for表达式
一.for表达式 1.for表达式语法格式及用法 for表达式利用可迭代对象创建新的列表,for表达式也称为列表推导式,具体语法格式如下: [表达式 for 循环计数器 in 可迭代对象] 例: a ...
- jqury点击返回顶部代码
效果请看右下角:代码如下: <div class="totop"><img src="https://www.cnblogs.com/images/cn ...
- Java第十二次作业:继承与抽象类解决工人与学生的问题,抽象类实例。抽象类作用——为多态创造了可能。抽象类的作用总结
继承与抽象类解决工人与学生的问题 抽象类实例 package com.swift; public abstract class Person { private String name; privat ...
- UIPopoverController
if (popOver == nil) { popOver = [[UIPopoverController alloc] initWithContentViewController:viewVC]; ...
- linux下GPIO的用户层操作(sysfs)
linux的GPIO通过sysfs为用户提供服务,下面是linux kernel里的说明文档,学习一下. GPIO Sysfs Interface for Userspace ============ ...
- jsp内置对象及其方法
JSP中一共预先定义了9个这样的对象,分别为: request. response. session. application. out. pagecontext. con ...
- Java-basic-6-方法
命令行参数的使用 public class test { public static void main(String args[]) { for(int i = 0; i < args.len ...
- selenium 自动化测试 Chrome 大于 63 版本 不能重定向问题解决办法
Chrome 一些信息: Chrome 63 以后,浏览器默认屏蔽了重定向 Chrome 63 版本,设置了禁止更新,有些情况还是会更新到最新版本 解决过程: 在博客上查到 selenium 里 给 ...
- Asp.net HttpWebRequest和HttpWebResponse发送和接受任何类型数据
发送字符串数据发送数据 string strId = "guest"; "; string postData = "userid=" + strId; ...