如何在TestNG中忽略测试用例

在这篇文章中,我们将讨论如何在TestNG中忽略测试用例。TestNG帮助我们忽略使用@Test注释的情况,我们可以在不同的级别上忽略这些情况。

  • 首先,只忽略一个测试方法或测试用例。
  • 第二,忽略一个类及其子类中的所有情况。
  • 第三个是,忽略包及其子包中的所有情况。

下面我们就来逐一看一下以上几点。

仅忽略测试方法或测试用例

这可以通过在测试用例或方法上使用@Test(enabled = false)或@Ignore注释来实现。

import org.testng.Assert;
import org.testng.annotations.Ignore;
import org.testng.annotations.Test;public class CodekruTest {@Test @Ignorepublic void test1() {System.out.println("Excecuting test1");Assert.assertTrue(true);}@Testpublic void test2() {System.out.println("Excecuting test2");Assert.assertTrue(true);}@Test(enabled = false)public void test3() {System.out.println("Excecuting test3");Assert.assertTrue(true);}}

输出:

Excecuting test2

PASSED: test2

===============================================

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

因此,这两个(test1和test3)都被忽略了,只有test2方法被运行和执行。

忽略类及其子类中的所有大小写

这也可以通过使用@Ignore注释来实现。因此,如果我们在一个类上放置@Ignore注释,那么该类及其子类中的case将被忽略。让我们举个例子。

注意:@Ignore注释的优先级高于单个@Test方法注释。当@Ignore放置在类上时,该类中的所有测试都将被禁用,即使我们将@Test(enabled = true)放在测试用例上。

package Test;import org.testng.Assert;
import org.testng.annotations.Ignore;
import org.testng.annotations.Test;@Ignore
public class CodekruTest {@Testpublic void test1() {System.out.println("Excecuting test1");Assert.assertTrue(true);}@Testpublic void test2() {System.out.println("Excecuting test2");Assert.assertTrue(true);}@Test(enabled = true)public void test3() {System.out.println("Excecuting test3");Assert.assertTrue(true);}}

 输出:

===============================================

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

Default suite Total tests run: 0, Failures: 0, Skips: 0 ===============================================

[TestNG] No tests found. Nothing was run

 所以,我们可以看到,没有一个案件被执行。现在让我们为上面的类(CodekruTest)创建一个子类(CodekruTestSubclass),尝试执行子类测试用例,看看会发生什么。

import org.testng.Assert;
import org.testng.annotations.Ignore;
import org.testng.annotations.Test;class CodekruTestSubclass extends CodekruTest{@Testpublic void test1() {System.out.println("Excecuting test1 of subclass");Assert.assertTrue(true);}@Testpublic void test2() {System.out.println("Excecuting test2 of subclass");Assert.assertTrue(true);}}@Ignore
public class CodekruTest {@Testpublic void test1() {System.out.println("Excecuting test1");Assert.assertTrue(true);}@Testpublic void test2() {System.out.println("Excecuting test2");Assert.assertTrue(true);}@Test(enabled = true)public void test3() {System.out.println("Excecuting test3");Assert.assertTrue(true);}}

输出:

===============================================

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

Default suite Total tests run: 0, Failures: 0, Skips: 0 ===============================================

[TestNG] No tests found. Nothing was run

这里,子类的case没有执行,因为我们在父类上使用了@Ignore注释。

忽略包及其子包中的所有大小写

我们也可以忽略包及其子包中的测试用例。但是,我们不能只是将@Ignore注释放在包的顶部,如下面的代码所示。相反,我们必须创建另一个package-info.java文件并添加包级注释。

@Ignore // this is wrong and is throwing an error
package Test;import org.testng.Assert;
import org.testng.annotations.Test;public class CodekruTest {@Testpublic void test1() {System.out.println("Excecuting test1");Assert.assertTrue(true);}
}

如何创建www.example.com文件?因为eclipse不允许你创建一个package—info类文件。

  • 选择New -> Package。
  • 现在,勾选复选框package-info.java

create package-info.java

这将在上述包中创建一个package-info.java文件。所以,现在在这个文件中,我们可以在Test包上写@Ignore,如下所示。

@org.testng.annotations.Ignore
package Test;

因此,这个包及其子包中的所有情况现在都将被忽略。

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

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

相关文章

C语言实现双人贪吃蛇项目(基于控制台界面)

一.贪吃蛇 贪吃蛇是一款简单而富有乐趣的游戏,它的规则易于理解,但挑战性也很高。它已经成为经典的游戏之一,并且在不同的平台上一直受到人们的喜爱和回忆。 二.贪吃蛇的功能 游戏控制:玩家可以使用键盘输入设备来控制蛇的移动方…

【软件安装】(十六)双系统Ubuntu22.04引导启动菜单的默认项

一个愿意伫立在巨人肩膀上的农民...... 好学的人总是喜欢在电脑上安装双系统,可是安装好系统之后,就会出现默认启动优先级的苦恼,如果在Bios中设置Windows引导启动为优先启动,那么每次想要进如Ubuntu系统就都需要重新设置Bios。如…

[Vue warn]: useModel() called with prop “xxx“ which is not declared

我们在使用vue3里面的defineModel的时候可能会出现这个问题,原因是我们使用的 kebab-case 形式的属性名,我也不知道是不是vue3设定这个api的时候设置的不支持,我没找到相关文档,不过我们把 kebab-case 的形式改为 驼峰命名法 或者…

YOLOv8 训练自己的数据集(20240423)

环境搭建请参考:Win10 搭建 YOLOv8 运行环境(20240423)-CSDN博客 环境测试请参考:本地运行测试 YOLOv8(20240423)-CSDN博客 一、使用 YOLOv8 的 coco128 数据集熟悉一下如何训练和预测 1.1、在项目根目录…

ClickHouse用UDF解析XML字符串和XML文件

一.如果是读取xml文件的时候,文件入库需要使用文件读取UDF 创建了1个测试文件 wsdFileRead(): 直接读取文件内容 SELECT wsdFileRead(/home/temp/wsd_test.xml)Query id: 09b6e5fe-7169-43f7-b001-90e2eeabb8da┌─wsdFileRead(/home/temp/wsd_test.xm…

串口服务器和光纤交换机的区别

串口服务器与光纤交换机在功能和应用上存在显著区别。串口服务器主要实现串口设备与以太网设备之间的数据转换与传输,适用于远程监控、数据采集等场景;而光纤交换机则专注于高速光纤网络中的数据交换,为大型企业或数据中心提供稳定、高效的数…

基于SpringBoot的合家云社区物业管理平台 - 权限管理模块开发

合家云社区物业管理平台 4.权限管理模块开发 4.1 权限管理概述 4.1.1 权限管理的意义 后台管理系统中,通常需要控制不同的登录用户可以操作的内容。权限管理用于管理系统资源,分配用户菜单、资源权限,以及验证用户是否有访问资源权限。 …

开源模型应用落地-chatglm3-6b-集成langchain(十)

一、前言 langchain框架调用本地模型,使得用户可以直接提出问题或发送指令,而无需担心具体的步骤或流程。通过LangChain和chatglm3-6b模型的整合,可以更好地处理对话,提供更智能、更准确的响应,从而提高对话系统的性能…

构建企业信息安全防护体系:以电子文档安全为核心

随着信息社会的飞速发展与企业信息化建设的深入,企业的商业机密已从传统的纸质文件转向各类电子文档,如CAD图纸、Office文档等。这些数字化的信息载体在提升工作效率、便捷信息流转的同时,也成为了企业内部数据安全面临的主要挑战。如何有效地…

基于springboot实现中药实验管理系统设计项目【项目源码+论文说明】

基于springboot实现中药实验管理系统设计演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了中药实验管理系统的开发全过程。通过分析中药实验管理系统管理的不足,创建了一个计算机管理中药实验管…

LeetCode-2385. 感染二叉树需要的总时间【树 深度优先搜索 广度优先搜索 二叉树】

LeetCode-2385. 感染二叉树需要的总时间【树 深度优先搜索 广度优先搜索 二叉树】 题目描述:解题思路一:记录父节点 DFS解题思路二:解题思路三:深度优先搜索建图 广度优先搜索求感染时间【最容易理解】 题目描述: 给…

实现Spring底层机制(三)

文章目录 阶段4—实现BeanPostProcessor机制1.文件目录2.初始化方法实现1.编写初始化接口InitializingBean.java2.MonsterService.java实现初始化接口3.容器中的createBean方法增加初始化逻辑,判断对象类型是否是InitializingBean的子类型,如果是&#x…

FRP远程连接

前言 通过frp和跳板机完成局域网服务器访问。工具地址:https://github.com/fatedier/frp 配置frp过程 下载frp工具,下载地址如下: https://github.com/fatedier/frp/releases 这里我选择了v0.57.0 解压到本地路径 tar -zxvf xxxxxx.tar.gz配…

python爬虫学习第二十八天-------了解scrapy(二十八天)

🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天…

接口测试和Mock学习路线(中)

1.什么是 swagger Swagger 是一个用于生成、描述和调用 RESTful 接口的 WEB 服务。 通俗的来讲,Swagger 就是将项目中所有想要暴露的接口展现在页面上,并且可以进行接口调用和测试的服务。 现在大部分的项目都使用了 swagger,因为这样后端…

fakak详解(2)

Kafka和Flume整合 Kafka与flume整合流程 Kafka整合flume流程图 flume主要是做日志数据(离线或实时)地采集。 图-21 数据处理 图-21显示的是flume采集完毕数据之后,进行的离线处理和实时处理两条业务线,现在再来学习flume和kafka的整合处理。 配置fl…

微信小程序开发工具的使用,各个配置文件详解,小程序开发快速入门

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

redis单线程模型

工作原理 在Redis中,当两个客户端同时发送相同的请求时,Redis采用单线程模型来处理所有的客户端请求,会依次处理这些请求,每个请求都会按照先后顺序被执行,不会同时处理多个请求。使得Redis能够避免多线程并发访问数据…

大语言模型应用指南:以ChatGPT为起点,从入门到精通的AI实践教程

目录 前言ChatGPT问世和发展展望未来大语言模型应用指南 特点大语言模型应用指南 主要内容 前言 在20世纪末和21世纪初,人类经历了两次信息革命的浪潮。 第一次是互联网时代的兴起,将世界各地连接在一起,改变了人们获取信息和交流的方式。 …

函数式接口及Stream流式计算

一、什么是函数式接口 只有一个方法的接口,例如 FunctionalInterface public interface Runnable { public abstract void run(); }二、Function函数式接口:有一个输入参数,有一个输出 三、断定型接口:有一个输入参数&#xf…