TestNG Include and exclude

在这篇文章中,我们将详细讨论TestNG的包含和排除标签。下面是我们将在这篇文章中看到的要点-

  • 包含和排除包
  • 第二,包括和排除测试方法
  • 最后,包括和排除组

我们只能将exclude标记与packages、methods和run标记(groups的子标记,告诉我们要运行哪些组)一起使用。让我们看看上面提到的所有要点。

包含和排除包

在这里,我们将讨论包和子包,以及我们需要做些什么来包含或排除一些包。下面是我们将在示例中使用的结构。

package structure

在这里,Practice是我们的顶级包,而Test1、Test2和Test3是我们的子包,每个子包都包含一个Test类。

CodekruTest1.java

public class CodekruTest1 {
 
    @Test
    public void test1() {
        System.out.println("Executing test1 in CodekruTest1 class");
        Assert.assertTrue(true);
    }
     
}

CodekruTest2.java

public class CodekruTest2 {
     
    @Test
    public void test1() {
        System.out.println("Executing test1 in CodekruTest2 class");
        Assert.assertTrue(true);
    }
 
}

CodekruTest3.java

public class CodekruTest3 {
 
    @Test
    public void test1() {
        System.out.println("Executing test1 in CodekruTest3 class");
        Assert.assertTrue(true);
    }
 
}

现在,如果我们想在Practice包中运行所有的测试用例,我们将生成如下所示的XML文件。

<suite name="codekru">
    <test name="codekruTest">
        <packages>
            <package name="Practice.*" />
        </packages>
    </test>
</suite>

运行上述XML文件后的输出

Executing test1 in CodekruTest1 class
Executing test1 in CodekruTest2 class
Executing test1 in CodekruTest3 class
仅包括某些特定的软件包

现在,如果我们只想运行一些特定的包,比如包Test1和Test3,该怎么办?在XML文件中不写 *(星号),我们必须写我们想要运行的包的确切路径。

<suite name="codekru">
    <test name="codekruTest">
        <packages>
            <package name="Practice.Test1" />
            <package name="Practice.Test3" />
        </packages>
    </test>
</suite>

运行上述XML文件后的输出

Executing test1 in CodekruTest2 class
Executing test1 in CodekruTest3 class
包括和排除测试方法

这是include和exclude标签最常用的用例之一。有时候,我们只想运行一个类中的几个案例,而不是运行所有的案例,我们可以通过使用include标签来实现这一点。类似地,如果我们想排除某些特定的测试用例或测试方法,我们可以使用exclude标签来完成。

仅包括一些特定的测试方法

为了只包含测试类中的一些测试方法,我们必须使用如下所示的include标签。

语法

<class name = "name_of_the_class">
  <methods>
    <include name = "name_of_the_test_method"/>
  </methods>
</class>

让我们以一个名为CodekruTest的类为例,它有4个测试方法,然后我们将尝试只运行其中的2个。

CodekruTest.java

package Test;
 
import org.testng.Assert;
import org.testng.annotations.Test;
 
public class CodekruTest {
 
    @Test
    public void test1() {
        System.out.println("Executing test1 in CodekruTest class");
        Assert.assertTrue(true);
    }
 
    @Test
    public void test2() {
        System.out.println("Executing test2 in CodekruTest class");
        Assert.assertTrue(true);
    }
 
    @Test
    public void test3() {
        System.out.println("Executing test3 in CodekruTest class");
        Assert.assertTrue(true);
    }
 
    @Test
    public void test4() {
        System.out.println("Executing test4 in CodekruTest class");
        Assert.assertTrue(true);
    }
 
}

下面是XML文件

<suite name="codekru">
    <test name="codekruTest">
        <classes>
         <class name = "Test.CodekruTest"> 
          <methods>
           <include name="test1" />
           <include name="test3"/>
          </methods>
         </class>
        </classes>
    </test>
</suite>

运行XML文件后的输出-

Executing test1 in CodekruTest class
Executing test3 in CodekruTest class

在这里,我们可以看到只有test1和test3被执行。

仅列出某些特定的测试方法

exclude标记的语法与include标记的语法类似

<class name = "name_of_the_class">
  <methods>
    <exclude name = "name_of_the_test_method"/>
  </methods>
</class>

现在,让我们从同一个CodekruTest类中排除test3()方法。

运行XML文件后的输出

Executing test1 in CodekruTest class
Executing test2 in CodekruTest class
Executing test4 in CodekruTest class

这里我们可以看到test3()方法没有执行。

包括和排除组

让我们用一个类来解释我们例子中包含和排除的组。

CodekruTest.java

public class CodekruTest {
      
    @Test(groups = { "group1","group2" })
    public void test1() {
        System.out.println("Executing test1 in CodekruTest class");
        Assert.assertTrue(true);
    }
  
    @Test(groups = { "group2" })
    public void test2() {
        System.out.println("Executing test2 in CodekruTest class");
        Assert.assertTrue(true);
    }
  
    @Test(groups = { "group1" })
    public void test3() {
        System.out.println("Executing test3 in CodekruTest class");
        Assert.assertTrue(true);
    }
  
}
包括特定群体

只运行group1下的测试

<suite name="codekru">
    <test name="codekruTest">
        <groups>
            <run>
                <include name="group1" />
            </run>
        </groups>
 
        <classes>
            <class name="Test.CodekruTest">
            </class>
        </classes>
    </test>
</suite>

运行上述XML文件后的输出

Executing test1 in CodekruTest class
Executing test3 in CodekruTest class
排除特定的group

现在,让我们尝试排除组1。我们在上面创建的XML文件将保持不变,只是将标记名从include改为exclude。

<suite name="codekru">
    <test name="codekruTest">
        <groups>
            <run>
                <exclude name="group1" />
            </run>
        </groups>
 
        <classes>
            <class name="Test.CodekruTest">
            </class>
        </classes>
    </test>
</suite>

运行上述XML文件后的输出

Executing test2 in CodekruTest class

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

公园景区小红书抖音打造线上流量运营策划方案

【干货资料持续更新&#xff0c;以防走丢】 公园景区小红书抖音打造线上流量运营策划方案 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 共70页可编辑&#xff08;完整资料包含以下内容&#xff09; 目录 公园的线上运营方案&#xff1a; 一、运营目标 1. 品…

微电网优化:基于小龙虾优化算法COA的微电网优化(提供MATLAB代码)

一、微电网优化模型 微电网是一个相对独立的本地化电力单元&#xff0c;用户现场的分布式发电可以支持用电需求。为此&#xff0c;您的微电网将接入、监控、预测和控制您本地的分布式能源系统&#xff0c;同时强化供电系统的弹性&#xff0c;保障您的用电更经济。您可以在连接…

TCP三次握手过程及抓包分析

TCP三次握手过程 一、TCP分段格式二、TCP三次握手三、Wireshark抓包分析 一、TCP分段格式 二、TCP三次握手 三、Wireshark抓包分析

cmake中报错undefined reference to `pthread_create‘的解决方法

出现报错&#xff1a; 解决方法 一般网上会建议在终端指令g/gcc后面增加参数-pthread,但是我们没有用到g/gcc指令. cmake的解决方法是在CMakeLists.txt文件里面增加一行. add_executable(server2 main.cpp) target_link_libraries(server2 pthread)问题就解决了

[VulnHub靶机渗透] pWnOS 2.0

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

lora pingpang系统 4

1 深入了解LoRa技术原理 1.1 LoRa扩频通信原理 1.1.1 模拟无线通信&#xff1a; 模拟无线通信是一种使用模拟信号传输数据的通信方式。这种通信方式已经被数字无线通信所取代&#xff0c;因为数字通信具有更高的效率和可靠性。 天线&#xff1a;从空中接收到的无线电波转换成…

用友NC Cloud importhttpscer 任意文件上传漏洞复现

0x01 产品简介 用友 NC Cloud 是一种商业级的企业资源规划云平台,为企业提供全面的管理解决方案,包括财务管理、采购管理、销售管理、人力资源管理等功能,基于云原生架构,深度应用新一代数字技术,打造开放、 互联、融合、智能的一体化云平台,支持公有云、混合云、专属云…

ViewModel 使用及原理解析

public final MutableLiveData mUserLiveData new MutableLiveData<>(); public UserModel() { //模拟从网络加载用户信息 mUserLiveData.postValue(new User(1, “name1”)); } //模拟 进行一些数据骚操作 public void doSomething() { User user mUserLiveDat…

【RMSNorm】Root Mean Square Layer Normalization

【RMSNorm】Root Mean Square Layer Normalization 论文信息 阅读评价 Abstract Introduction Related Work Background RMSNorm Experiments 论文信息 名称内容论文标题Root Mean Square Layer Normalization论文地址https://arxiv.org/abs/1910.07467发表时间2019-…

linux练习-交互式传参

在shell脚本中&#xff0c;read 向用户显示一行文本并接受用户输入 #!/bin/bash read -p 依次输入你的姓名、年龄、家乡 name age home echo 我是$name,年龄$age,我来自$home

12种常见的软件架构风格

什么是软件架构&#xff1f; 软件架构是定义软件系统的高级结构和组织的过程。它涉及识别和选择正确的组件&#xff0c;决定它们之间如何交互&#xff0c;以及确定它们应该如何组织以实现特定的目标。软件架构的目标是创建一个可维护、可扩展和安全的系统&#xff0c;能够满足…

小红书自动化仿写发文机器人了解一下

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。&#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精通…

权限认证SpringCloud GateWay、SpringSecurity、OAuth2.0、JWT一网打尽!

权限认证SpringCloud GateWay、SpringSecurity、OAuth2.0、JWT一网打尽 一、SpringCloud GateWay 1.它是如何工作的&#xff1f; ​ 客户端向 Spring Cloud Gateway 发出请求。如果Gateway处理程序映射确定一个请求与路由相匹配&#xff0c;它将被发送到Gateway Web处理程序。…

蓝桥杯第十四届--异或和之和

题目描述 给定一个数组 Ai&#xff0c;分别求其每个子段的异或和&#xff0c;并求出它们的和。或者说&#xff0c;对于每组满足 1 ≤ L ≤ R ≤ n 的 L, R &#xff0c;求出数组中第 L 至第 R 个元素的异或和。然后输出每组 L, R 得到的结果加起来的值。 输入格式 输入的第一…

基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 关键概念与模型 4.2数学模型 5.完整程序 1.程序功能描述 基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出ACO优化的收敛曲线&#xff0c;规划路径结果和每一条路径的满载率。 2.测试软…

C# MES通信从入门到精通(8)——C#调用Webservice服务进行数据交互

前言 在上位机开发领域,使用webservice来访问客户的终端Mes系统是一项必备的技能,本文详细介绍了如何在c#中调用webservice服务,不仅介绍了使用添加服务引用直接调用webservice中的方法外还介绍了使用http的post方法调用webservice方法,过程详细且均为实战经验总结,对于初…

十个排序算法

目录 冒泡排序(Bubble Sort) 选择排序(Select Sort) 插入排序&#xff08;InsertSort&#xff09; 希尔排序&#xff08;ShellSort&#xff09; 计数排序&#xff08;CountSort&#xff09; 快速排序&#xff08;QuickSort&#xff09; 归并排序&#xff08;Merge Sort&a…

chatGPT4无法登录

遇到问题&#xff1a;chatgpt网站上点击登录&#xff08;log in),网站就会跳转并显示&#xff1a;unable to connect 解决方法&#xff1a;不要用亚洲节点&#xff0c;亚洲节点被全面封禁&#xff0c;在全局代理中可以换成美国的节点

故障诊断 | 一文解决,PLS偏最小二乘法的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,PLS偏最小二乘法的故障诊断(Matlab) 模型描述 偏最小二乘法(Partial Least Squares, PLS)是一种统计建模方法,用于建立变量之间的线性关系模型。它是对多元线性回归方法的扩展,特别适用于处理高维数据和具有多重共线性的数据集。…

Idea显示无法自动装配。找不到‘ xxx’类型的Bean

虽然只标红&#xff0c;不报错&#xff0c;但是看着非常别扭&#xff01; 原因&#xff1a; 当我们在使用Autowired注解的时候&#xff0c;默认requiredtrue,表示注入的时候bean必须存在&#xff0c;否则注入失败。 解决方案一&#xff1a; 在自动转配的注解后面添加(require…