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 ...
随机推荐
- 2018.2.10 使用SSH连接远程滴滴云服务器Ubuntu (Windows下) 及 putty工具永久设置字体、颜色
一开始会有人问云服务器是什么? 云服务器是一种类似VPS服务器的虚拟化技术, VPS是采用虚拟软件,VZ或VM在一台服务器上虚拟出多个类似独立服务器的部分,每个部分都可以做单独的操作系统,管理方法同服 ...
- VC++:鼠标的使用
长期改变鼠标形状: SetClassLongPtr(GetSafeHwnd(), GCLP_HCURSOR, (LONG)LoadCursor(NULL, IDC_WAIT));//这个是x64下可以 ...
- python之道13
看代码分析结果 func_list = [] for i in range(10): func_list.append(lambda :i) v1 = func_list[0]() v2 = func ...
- Ubuntu下命令行访问网站
第一步,需要安装一个名为w3m的软件工具,打开终端,输入如下命令 sudo apt-get install w3m 第二步,安装好w3m之后,在终端里面启动w3m,打开一个网址,比如w3m www ...
- 掉坑日志:Windows Native API与DPI缩放
高DPI显示器越来越普及,软件自然也要适应这个变化,最近实习的时候也遇到了一个关于DPI缩放的问题.因为内部框架的一个控件有BUG,会导致内容的显示出问题,后来实在没办法改成了用Windows Nat ...
- 如何将oracle查询的结果传输给变量
如何将oracle查询的结果传输给变量 1. sqlplus查询时的变量设置 set echo off; #控制start命令不列出命令文件中的每一命令 set feedback off; #显示由查 ...
- 2d游戏中求出一个向量的两个垂直向量
function cc.exports.VerticalVector(vec)--求出两个垂直向量 local result = {} result[1] = cc.p(vec.y/vec.x,-1) ...
- Swift开发中 JSON对象/JSON字符串/Data的互转
本文将介绍Swift开发中常用的转换(JSON对象/JSON字符串/Data之间的互相转换) #pragma mark - JSON(对象)----->JSON字符串 1.原生方法 //JSON ...
- PHP 代码优化建议
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍.当然了,这个测试方法需要在十万级以上次执行,效果才明显.其实静态方法和非静态方法的效率 ...
- php加密解密函数大全
第一种: <?php function encryptDecrypt($key, $string, $decrypt){ if($decrypt){ $decrypted = rtrim(mcr ...