TestNG 如何保持TestNG.xml中所述的执行顺序

TestNG 如何保持TestNG.xml中所述的执行顺序

在最新版本中,TestNG根据TestNG.xml或任何可执行的XML文件中的顺序执行类。但是,在旧版本中运行tesng.xml时,有时不会保持顺序。TestNG可能会以随机顺序运行类。在最新版本中,TestNG根据TestNG.xml或任何可执行的XML文件中的顺序执行类。但是,在旧版本中运行tesng.xml时,有时不会保持顺序。TestNG可能会以随机顺序运行类。

在本文中,我们将讨论如何确保按照tesng.xml保持的执行顺序。

TestNG支持两个属性-并行和保留顺序。这些属性在testing.xml中使用。

  • 并行属性用于并行运行测试。因此,第一步是确保不会并行执行以保持执行顺序。并行属性在套件级别上添加,所以需要将parallel = “none”添加到parallel = “”。

  • 保留顺序属性在测试级别上使用。TestNG在旧版本的默认值为false。这可能导致随机执行。为了确保执行顺序接受,我们在testing.xml中将属性分配为true。

现在,我们将看到如何实现这两个属性以确保执行顺序按照testing.xml中的顺序进行。

步骤

  • 步骤1:创建2个TestNG类-OrderofTestExecutionInTestNG和NewTestngClass

  • 步骤2:在这两个类中编写2个不同的@Test方法-OrderofTestExecutionInTestNG和NewTestngClass。

  • 步骤3:现在创建testNG.xml以运行这两个TestNG类,并如下所示指定parallel = none和preserve−order = true

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

示例

以下是TestNG类OrderofTestExecutionInTestNG的代码:

import org.testng.annotations.*;

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

以下是常见的TestNG类NewTestngClass的代码:

import org.testng.annotations.*;

public class NewTestngClass {

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

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">
      <classes>
         <class name = "OrderofTestExecutionInTestNG"/>
    <class name = "NewTestngClass"/>
      </classes>
   </test>
</suite>

输出

in test case 1 of OrderofTestExecutionInTestNG
in test case 2 of OrderofTestExecutionInTestNG
in test case 1 of NewTestngClass
in test case 2 of NewTestngClass

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程