Testng测试框架(7)--测试运行

忽略测试

TestNG可以让你忽略类、特殊包、包及其子中的所有@Test方法。

当在测试方法级别使用@Ignore 注解,在功能上与@Test(enabled=false).一样。

以下例子将忽略类中所有tests。

import org.testng.annotations.Ignore;
import org.testng.annotations.Test;
@Ignore
public class IgnoreTest {@Testpublic void testMethod1() {}@Testpublic void testMethod2() {}
}

在这里插入图片描述
@Ignore注解比@Test方法注解有更高的优先级。

To ignore all tests in a particular package, you just need to create package-info.java and add the @Ignore annotation to it. Here’s a sample :

@Ignore
package com.testng.master;import org.testng.annotations.Ignore;

This causes all the @Test methods to be ignored in the package com.testng.master and all of its sub-packages.

重运行失败用例

每次测试套件中的测试失败时,TestNG都会在输出目录中创建一个名为testng-failed.xml的文件。这个XML文件包含重新运行仅这些失败方法所需的信息,使您能够迅速重现失败,而无需运行整个测试。因此,一个典型的会话看起来会像这样:

java -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs testng.xml
java -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs test-outputs\testng-failed.xml

请注意,testng-failed.xml文件将包含所有必要的依赖方法,以确保您能够运行失败的方法而不会遇到任何跳过失败的情况。

有时,您可能希望TestNG在测试失败时自动重试。在这些情况下,您可以使用重试分析器。

当您将重试分析器绑定到测试时,TestNG会自动调用重试分析器来确定是否可以再次重试测试用例,以尝试查看刚刚失败的测试现在是否通过。以下是您如何使用重试分析器:

构建org.testng.IRetryAnalyzer接口的实现

将这个实现绑定到@Test注解上,例如@Test(retryAnalyzer = LocalRetry.class)

下面是一个重试分析器的示例实现,它最多会重试测试三次。

import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;public class MyRetry implements IRetryAnalyzer {private int retryCount = 0;private static final int maxRetryCount = 3;@Overridepublic boolean retry(ITestResult result) {if (retryCount < maxRetryCount) {retryCount++;return true;}return false;}
}

在这里插入图片描述
可以看到,一共运行了四次,第一个失败被忽略,又执行了三次,最后一次失败报错。

Dry Run

“Dry Run” 是一个在计算机科学和软件测试中常用的术语,通常指的是模拟执行某个过程或测试,但不真正执行它。在软件测试的上下文中,Dry Run 是一种在实际运行测试之前预览或模拟测试执行的方法。它允许测试人员或开发人员检查测试脚本和配置是否正确,而无需实际执行测试并可能产生副作用或消耗资源。

对于TestNG测试,Dry Run 可能意味着执行以下步骤:

  1. 检查测试配置:确认测试套件和测试用例的配置是否正确,包括依赖项、参数和任何需要的资源。

  2. 预览测试执行:模拟测试执行流程,查看哪些测试方法将被调用,以及它们的执行顺序。

  3. 验证测试数据:确保测试所需的数据(如输入数据、测试数据、环境配置等)是可用的,并且是正确的。

  4. 检查测试逻辑:确认测试逻辑是否按照预期编写,包括断言和验证点。

  5. 识别潜在问题:通过Dry Run,可能能够提前发现测试脚本中的潜在问题,如缺失的依赖项、错误的配置或逻辑错误。

  6. 避免不必要的资源消耗:由于Dry Run 不真正执行测试,因此它避免了因执行测试而可能产生的资源消耗(如时间、内存、网络带宽等)。

在TestNG中,虽然没有一个内置的“Dry Run”功能,但你可以通过编写自定义的脚本或使用集成开发环境(IDE)的功能来模拟这个过程。例如,你可以编写一个脚本来读取测试套件和测试用例,并输出它们的信息,而不是真正执行它们。此外,一些IDE(如IntelliJ IDEA、Eclipse等)提供了测试运行配置,允许你查看将要运行的测试,而不真正执行它们。

可以启用TestNG的dry run模式,通过给JVM传参 -Dtestng.mode.dryrun=true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/812073.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

秦朗丢寒假作业系摆拍 博主被处罚

大家好&#xff01; 我是老洪&#xff0c;刚看到秦朗丢寒假作业系摆拍博主被处罚。 据央视财经媒体报道&#xff0c;近期&#xff0c;“秦朗丢寒假作业”事件被证实为自导自编的摆拍视频。 图片来源央视财经公众号截图 该博主与同事薛某&#xff0c;为了吸引更多的粉丝和流量&a…

基于SSM的旅游管理系统论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对旅游信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&am…

解决cmd输入py文件路径不能执行,使用anaconda prompt 能执行

究其原因&#xff0c;是因为没有配置环境&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 第一步&#xff1a;配置环境变量 操作步骤如下&#xff1a; 1、右击此电脑 ---->属性 2、高级系统设置 3、点击环境变量 4、选择 …

代码随想录--数组--长度最小的子数组

题目 给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0。 示例&#xff1a; 输入&#xff1a;s 7, nums [2,3,1,2,4,3] 输出&#…

[BT]BUUCTF刷题第16天(4.12)

第16天 Web [MRCTF2020]Ezpop 打开网站就是一段泄露的源代码&#xff1a; <?php //flag is in flag.php //WTF IS THIS? //Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95 //And Crack…

文件名乱码危机:数据恢复全攻略

在数字化时代的浪潮中&#xff0c;电脑文件成为我们日常生活和工作中不可或缺的一部分。然而&#xff0c;有时我们会突然遭遇一个令人头疼的问题&#xff1a;原本清晰易读的文件名突然变成了乱码。这些乱码文件名不仅让我们无法准确识别文件内容&#xff0c;更可能意味着数据丢…

时间序列分析 # 平稳性检验和ARMA模型的识别与定阶 #R语言

掌握单位根检验的原理并能解读结果&#xff1b;掌握利用序列的自相关图和偏自相关图识别模型并进行初步定阶。 原始数据在文末&#xff01;&#xff01;&#xff01; 练习1、根据某1971年9月-1993年6月澳大利亚季度常住人口变动&#xff08;单位&#xff1a;千人&#xff09;的…

一个开源跨平台嵌入式USB设备协议:TinyUSB

概述 TinyUSB 是一个用于嵌入式系统的开源跨平台 USB 主机/设备堆栈&#xff0c;设计为内存安全&#xff0c;无需动态分配&#xff0c;线程安全&#xff0c;所有中断事件都被推迟&#xff0c;然后在非 ISR 任务函数中处理。查看在线文档以获取更多详细信息。 源码链接&#xff…

Redis从入门到精通(十五)Redis分布式缓存(三)Redis分片集群的搭建和原理分析

文章目录 前言5.4 分片集群5.4.1 搭建分片集群5.4.2 散列插槽5.4.3 集群伸缩5.4.3.1 需求分析5.4.3.2 创建新的Redis实例5.4.3.3 添加新节点到Redis集群5.4.3.4 转移插槽 5.4.4 故障转移5.4.4.1 自动故障转移5.4.4.2 手动故障转移 5.4.5 RedisTemplate 5.5 小结 前言 Redis分布…

kali工具----枚举工具

一、枚举工具 枚举是一类程序&#xff0c;它允许用户从一个网络中收集某一类的所有相关信息。本节将介绍DNS枚举和SNMP枚举技术。DNS枚举可以收集本地所有DNS服务和相关条目。DNS枚举可以帮助用户收集目标组织的关键信息&#xff0c;如用户名、计算机名和IP地址等&#xff0c;…

【Qt】界面优化

目录 一、QSS 1.1 基本语法 1.2 QSS设置方法 1.2.1 指定控件样式设置 1.2.2 全局样式设置 1.2.3 从文件加载样式表 1.2.4 使用Qt Designer编辑样式 1.3 选择器 1.3.1 介绍 1.3.2 子控件选择器 1.3.3 伪类选择器 1.4 样式属性(盒模型) 1.5 代码示例(登录界面) 二、…

OSCP靶场--Banzai

OSCP靶场–Banzai 考点(ftp爆破 webshell上传web1访问403web2可以访问webshell反弹mysql udf提权) 1.nmap扫描 ## nmap扫描一定要使用 -p- 否则容易扫不全端口 ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC 192.168.158.56 -Pn -p- --min-rate 2500Starting Nmap 7.…

机器学习前导——PyCharm PyTorch Python3 机器学习

机器学习前导——PyCharm & pytorch & Python3 & 机器学习 文章目录 前言PyCharmPyTorchPython3机器学习联系 前言 这学期选了《机器学习》&#xff0c;第一次接触&#xff0c;对一些专有名词很陌生。 PyCharm PyCharm是一款由JetBrains开发的软件&#xff0c…

STM32 串口接收定长,不定长数据

本文为大家介绍如何使用 串口 接收定长 和 不定长 的数据。 文章目录 前言一、串口接收定长数据1. 函数介绍2.代码实现 二、串口接收不定长数据1.函数介绍2. 代码实现 三&#xff0c;两者回调函数的区别比较四&#xff0c;空闲中断的介绍总结 前言 一、串口接收定长数据 1. 函…

SpringBoot3 + Vue3 + Uniapp + uView + Elenment 实现动态二级分类以及二级分类的管理

SpringBoot3 Vue3 Uniapp uView Elenment 实现动态二级分类以及二级分类的管理 1. 效果展示1.1 前端显示效果1.2 后台管理一级分类1.3 后台管理二级分类 2. 后端代码2.1 GoodsCategoryController.java2.2.1 GoodsCategoryMapper.java2.2.2 GoodsCategorySonMapper.java2.3.…

Zookeeper的集群搭建和ZAB协议详解

Zookeeper的集群搭建 1&#xff09;zk集群中的角色 Zookeeper集群中的节点有三个角色&#xff1a; Leader&#xff1a;处理集群的所有事务请求&#xff0c;集群中只有一个LeaderFollwoer&#xff1a;只能处理读请求&#xff0c;参与Leader选举Observer&#xff1a;只能处理读…

数仓维度建模

维度建模 数仓建模方法1. 范式建模法&#xff08;Third Normal Form&#xff0c;3NF&#xff09;2. 维度建模法&#xff08;Dimensional Modeling&#xff09;3. 实体建模法&#xff08;Entity Modeling&#xff09; 维度建模1. 事实表事实表种类事务事实表周期快照事实表累计快…

强大的数据分析计算软件:Stata 15 for Mac 激活版

Stata 15 for Mac是一款高级统计分析软件&#xff0c;具有强大的数据管理和数据提取工具。以下是其功能和特点的详细介绍&#xff1a; 软件下载&#xff1a;Stata 15 for Mac 激活版版下载 数据管理&#xff1a;Stata 15 for Mac支持多种数据库、数据格式和计算机语言&#xff…

如何在淘~宝接单和解决别人问题-java开发

如下这是一个连接&#xff1a;https://s.tb.cn/c.0vDtL3https://s.tb.cn/c.0vDtL3 解决各种问题。可付费咨询

【JAVA基础篇教学】第四篇:Java条件语句

博主打算从0-1讲解下java基础教学&#xff0c;今天教学第四篇&#xff1a; Java条件语句。 在Java中&#xff0c;条件语句用于根据不同的条件执行不同的代码块。Java提供了if、else if和else等关键字来实现条件判断。 一、if语句 if语句用于执行一个代码块&#xff0c;如果给…