TestNG 如何在testng.xml中按名称和通配符运行类

TestNG 如何在testng.xml中按名称和通配符运行类

testng.xml的格式为<classes>,我们在其中定义了应该执行的所有测试类。在<classes>中提供正则表达式的特定方法是不存在的。但是有一些解决方案可以用来运行特定类中的特定@Test方法。TestNG支持在include、exclude和package标签中使用正则表达式。

在这里,问题是当用户想要运行只有特定格式的类时,即类的初始名称相同。例如,用户想要运行所有名称以NewTest开头的类。

在本教程中,我们将讨论如何运行所有名称以NewTest开头的类。

解决上述问题的方法可能是使用beanshell脚本。用户可以在testng.xml中使用<method− selectors>标签而不是<classes>标签来提供一个简单的代码。它将在运行时评估并提取应该运行的类名。

步骤

  • 步骤1:创建3个TestNG类-NewTestngClass、NewTestNGClass1和OrderofTestExecutionInTestNG。

  • 步骤2:在所有类中编写一个@Test方法。

  • 步骤3:现在创建如下所示的testNG.xml。

  • 步骤4:现在,运行testNG.xml或直接在IDE中运行testNG类,或使用命令行进行编译和运行。

示例

以下代码显示如何仅运行大套件中的1个测试方法:

src/NewTestngClass.java

import org.testng.annotations.Test;

public class NewTestngClass {

    @Test
    public void testCase1() {
        System.out.println("in test case 1 of NewTestngClass");
    }

}

src/ NewTestngClass1.java

import org.testng.annotations.Test;

public class NewTestngClass {

    @Test
    public void testCase1() {
        System.out.println("in test case 1 of NewTestngClass1");
    }
}

src/ NewTestngClass.java

import org.testng.annotations.Test;

public class OrderofTestExecutionInTestNG {

    @Test
    public void testCase1() {
        System.out.println("in test case 1 of OrderofTestExecutionInTestNG");
    }
}

testng.xml

这是一个配置文件,用于组织和运行TestNG测试用例。

当只需要执行特定测试而不是整个套件时,它非常方便。

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "Suite1" parallel = "none">
    <test name = "test1" preserve-order = "true">
        <method-selectors>
    <method-selector>
        <script language="beanshell"><
![CDATA[

            method.getDeclaringClass().getSimpleName().startsWith("NewTest")
               ]]>
        </script>
    </method-selector>
</method-selectors>
    </test>
</suite>

输出

in test case 1 of NewTestngClass
in test case 1 of NewTestngClass1

===============================================
Suite1
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
===============================================

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

TestNG 精选笔记