如何在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.rhkb.cn/news/314359.html

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

相关文章

【深度学习】YOLOv5,烟雾和火焰,目标检测,防火检测,森林火焰检测

文章目录 数据收集和数据标注查看标注好的数据的脚本下载yolov5创建 dataset.yaml训练参数开始训练yolov5n训练训练后的权重下载gradio部署 数据收集和数据标注 搜集数据集2w张。 pip install labelme labelme 然后标注矩形框和类别。 下载数据请看这里: https:…

图像处理之Retinex算法(C++)

图像处理之Retinex算法(C) 文章目录 图像处理之Retinex算法(C)前言一、单尺度Retinex(SSR)1.原理2.代码实现3.结果展示 二、多尺度Retinex(MSR)1.原理2.代码实现3.结果展示 三、带色…

【01-机器学习入门:理解Scikit-learn与Python的关系】

文章目录 前言Python与机器学习Scikit-learn简介Scikit-learn与Python的关系使用Scikit-learn进行机器学习结语 前言 在当今的数据科学和人工智能领域,机器学习已经成为了一个不可或缺的组成部分。而对于那些刚刚踏入这一领域的新手来说,理解机器学习的基…

线性代数 --- 矩阵的对角化以及矩阵的n次幂

矩阵的对角化以及矩阵的n次幂 (特征向量与特征值的应用) 前言: 在上一篇文章中,我记录了学习矩阵的特征向量和特征值的学习笔记,所关注的是那些矩阵A作用于向量x后,方向不发生改变的x(仅有尺度的缩放)。线…

Xilinx 7系列中clock IP核通过AXI4-Lite接口实现动态重新配置

当选择了动态重配置(Dynamic Reconfiguration)选项时,AXI4-Lite接口将默认被选中用于重新配置时钟组件。动态重新配置可以通过AXI4-Lite接口实现了Clocking Wizard IP核的时钟组件MMCM/PLL的动态重新配置。 如果需要直接访问MMCM/PLL的DRP寄…

C++ 头文件/宏冲突问题解决?如何解决?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

SpringBoot + kotlin 协程小记

前言: Kotlin 协程是基于 Coroutine 实现的,其设计目的是简化异步编程。协程提供了一种方式,可以在一个线程上写起来像是在多个线程中执行。 协程的基本概念: 协程是轻量级的,不会创建新的线程。 协程会挂起当前的协…

【软件】ERETCAD-Env:在轨空间环境3D动态仿真软件

文章介绍了Extreme-environment Radiation Effect Technology Computer-Aided Design – Environment (ERETCAD-Env)软件,文章的介绍和展示了ERETCAD-Env软件的功能和特点,这是一款用于动态模拟在轨卫星所处空间环境的计算机辅助设计软件。强调了该软件在…

如何在CentOS本地搭建DataEase数据分析服务并实现远程查看数据分析

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务…

pycharm远程连接server

1.工具–部署–配置 2.部署完成后,将现有的项目的解释器设置为ssh 解释器。实现在远端开发 解释器可以使用/usr/bin/python3

怎么排查K8S容器当中的Java程序内存泄露问题

今天早上发现生产线其中的一个服务在凌晨的时候突然重启了,内存突然从1G升到1.8G,CPU使用量从0.1升到了0.28,说明在这个时间点,内存突增达到了限额以上,服务重启了。因为这个服务布署了多节点,这次重启对业…

12 c++版本的坦克大战

前言 呵呵 这大概是 大学里面的 c 贪吃蛇了吧 有一些 面向对象的理解, 但是不多 这里 具体的实现 就不赘述, 仅仅是 发一下代码 以及 具体的使用 坦克大战 #include<iostream> #include<windows.h> #include<conio.h> #include<ctime> #include…

jvm(JVM快速入门、stack栈、堆、GC垃圾回收、Arthas)

文章目录 1. JVM快速入门1.1. 结构图1.2. 类加载器ClassLoader1.3. 执行引擎Execution Engine1.4. 本地接口Native Interface1.5. Native Method Stack1.6. PC寄存器(程序计数器)1.7. Method Area方法区 2. stack栈3. 堆3.1. 堆体系概述3.1.1. 新生区3.1.2. 老年代3.1.3. 永久代…

分类预测 | Matlab实现CNN-GRU-SAM-Attention卷积门控循环单元融合空间注意力机制的数据分类预测

分类预测 | Matlab实现CNN-GRU-SAM-Attention卷积门控循环单元融合空间注意力机制的数据分类预测 目录 分类预测 | Matlab实现CNN-GRU-SAM-Attention卷积门控循环单元融合空间注意力机制的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现CNN-GRU…

Visual Studio 对 C++ 头文件和模块的支持

在 C 编程领域&#xff0c;头文件和模块的管理有时候确实比较令人头疼。但是&#xff0c;有许多工具和功能可以简化此过程&#xff0c;提高效率并减少出错的可能性。下面是我们为 C 头文件和模块提供的几种工具的介绍。 构建明细 通过菜单栏 Build > Run Build Insights&a…

基于Rust的多线程 Web 服务器

构建多线程 Web 服务器 在 socket 上监听 TCP 连接解析少量的 HTTP 请求创建一个合适的 HTTP 响应使用线程池改进服务器的吞吐量优雅的停机和清理注意&#xff1a;并不是最佳实践 创建项目 ~/rust ➜ cargo new helloCreated binary (application) hello package~/rust ➜ma…

maven-依赖管理

依赖配置 https://mvnrepository.com/?__cf_chl_rt_tkvRzDsumjmJ_HF95MK4otu9XluVRHGqAY5Wv4UQYETR8-1714103058-0.0.1.1-1557 <dependencies><dependency><groupId></groupId><artifactId></artifactId><version></version>…

Day4 商品管理

Day4 商品管理 这里会总结构建项目过程中遇到的问题&#xff0c;以及一些个人思考&#xff01;&#xff01; 学习方法&#xff1a; 1 github源码 文档 官网 2 内容复现 &#xff0c;实际操作 项目源码同步更新到github 欢迎大家star~ 后期会更新并上传前端项目 编写品牌服务 …

Java集合相关的List、Set、Map基础知识

目录 一、集合介绍 二、List 三、Map HashMap的数据结构 如何理解红黑树 四、set 一、集合介绍 在Java中&#xff0c;集合是一种用于存储对象的数据结构&#xff0c;它提供了一种更加灵活和强大的方式来处理和操作数据。Java集合框架提供了一系列接口和类&#xff0c;用…

表格的单元格合并和表头的合并——vxe-table

vxe-table的官网&#xff1a;https://vxetable.cn/#/table/advanced/mergeCell在你的项目中下载安装完成后&#xff0c;先在main.js文件中引入&#xff1a; import VXETable from vxe-table import vxe-table/lib/style.css Vue.use(VXETable)一、单元格合并 效果图&#xff…