如何在运行时或以编程方式生成testng.xml

2024-04-04 20:12

本文主要是介绍如何在运行时或以编程方式生成testng.xml,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们可能会遇到一些场景,我们必须在运行时或以编程方式创建testng.xml文件。所以,在这篇文章中,我们将学习如何在运行时创建一个testng.xml文件并执行它。

让我们首先创建一个我们想要以编程方式执行的测试用例

package Test;import org.testng.Assert;
import org.testng.annotations.Test;public class CodekruTest {@Testpublic void executeTest() {System.out.println("Excecuting the test");Assert.assertTrue(true);}
}

我们将创建一个testng.xml文件来帮助我们运行上面的测试用例。

<suite name="codekru"><test name="codekru"><classes><class name="Test.CodekruTest" /></classes></test>
</suite>

上面的XML文件将执行CodekruTest类下的每个测试用例。

产出-

Excecuting the test===============================================
codekru
Total tests run: 1, Failures: 0, Skips: 0
现在,如何以编程方式创建上述XML文件?

我们在org.testng包中有suite,test,class标签的等价物。

  • <suite>它相当于XmlSuite类。
  • <test>它相当于XmlTest类。
  • <class>它相当于XmlClass类。

因此,记住这一点,让我们尝试创建与上面的XML文件等效的文件,它看起来像这样。

XmlSuite suite = new XmlSuite();
suite.setName("codekru"); // this means <suite name = "codekru">XmlTest test = new XmlTest(suite);
test.setName("codekru"); // this means <test name = "codekru">
List<XmlClass> classes = new ArrayList<XmlClass>(); // <classes>
classes.add(new XmlClass("Test.CodekruTest")); // this means <class name = "Test.CodekruTest">
test.setXmlClasses(classes);

要执行名为“codekru”的套件,我们必须创建一个TestNG对象,并向其传递一个套件列表,如下所示。

List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
TestNG testng = new TestNG();
testng.setXmlSuites(suites);
testng.run();

整个类如下:

import java.util.ArrayList;
import java.util.List;import org.testng.TestNG;
import org.testng.xml.XmlClass;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlTest;public class GenerateXmlAndExecuteItAtRuntime {public static void main(String[] args) {XmlSuite suite = new XmlSuite();suite.setName("codekru"); // this means <suite name = "codekru">XmlTest test = new XmlTest(suite);test.setName("codekru"); // this means <test name = "codekru">List<XmlClass> classes = new ArrayList<XmlClass>(); // <classes>classes.add(new XmlClass("Test.CodekruTest")); // this means <class name = "Test.CodekruTest">test.setXmlClasses(classes);List<XmlSuite> suites = new ArrayList<XmlSuite>();suites.add(suite);TestNG testng = new TestNG();testng.setXmlSuites(suites);testng.run();}
}

现在,像标准java应用程序一样运行main()方法,Test.CodekruTest下的所有测试用例也将执行。

产出-

Excecuting the test===============================================
codekru
Total tests run: 1, Failures: 0, Skips: 0
===============================================

这篇关于如何在运行时或以编程方式生成testng.xml的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/876735

相关文章

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关