什么是TestNG以及如何创建testng.xml文件?

目录

什么是TestNG?

如何创建testng.xml文件

手动创建testng.xml

通过testng.xml运行整个包

通过testng.xml运行类

使用Eclipse创建testng.xml


本文将讨论TestNG以及如何通过执行testng.xml文件在TestNG中运行第一个测试用例。

什么是TestNG?

TestNG是一个受JUnit和NUnit启发的测试框架,但引入了一些新功能,使其更强大,更易于使用,例如:

  • 它提供了对注释的支持,这使得编写测试非常容易。
  • 测试我们的代码是否是多线程安全的。
  • 灵活的测试配置。
  • 支持并行测试。
  • 支持数据驱动测试(使用@DataProvider)。
  • 支持参数。
  • 它由各种工具和插件(Eclipse,IDEA,Maven等)支持。如果你想在Eclipse中配置TestNG插件,你可以阅读这篇文章;它肯定会帮助你在Eclipse中安装TestNG。

TestNG是一个开源测试框架,NG代表下一代,旨在简化从单元测试到集成测试的广泛测试需求。

如何创建testng.xml文件

xml是一个XML文件,包含测试用例的信息和配置。TestNG使用testng.xml文件来运行用例,我们将看到如何创建testng.xml来执行我们的测试用例。

在移动之前,让我们创建一个项目,通过testng.xml文件运行一个测试用例。

  • 创建一个maven项目(阅读本文以创建一个maven项目)
  • 在eclipse中安装TestNG(阅读本文以在eclipse中安装TestNG)

安装TestNG后,请确保在pom.xml文件中添加以下TestNG依赖项



    org.testng
    testng
    7.6.1
    test

现在你的项目结构看起来像这样-

什么是TestNG以及如何创建testng.xml文件?_第1张图片

注意:App.java和AppTest.java是maven创建的默认java文件。您可以根据需要选择保留或删除它们。我们将删除他们为我们的职位。

下面是添加TestNG maven依赖项后的pom.xml文件。当我们使用maven命令创建项目时,maven会自动添加JUnit依赖项。


    4.0.0
    org.website.codekru
    DemoProject
    jar
    1.0-SNAPSHOT
    DemoProject
    http://maven.apache.org
     
    
        
            junit
            junit
            3.8.1
            test
        
        
        
            org.testng
            testng
            7.6.1
        
 
    

最后一件事是创建一个测试用例,我们可以通过testng.xml文件运行它。

我们将在“org.website.codekru”包中创建一个CodekruTest类。CodekruTest类将包含一个测试用例。

CodekruTest.java

package org.website.codekru;
 
import org.testng.annotations.Test;
 
public class CodekruTest {
 
    @Test
    public void test() {
        System.out.println("Executing first test case");
    }
 
}

@Test注释标记了一个测试用例,TestNG将只执行带有@Test注释的方法。

下面是更新后的项目结构。

什么是TestNG以及如何创建testng.xml文件?_第2张图片

现在,我们将创建一个testng.xml文件来运行测试用例。

我们可以手动或使用IDE创建testng.xml文件。我们将涵盖两种方式-

  • 手动创建testng.xml
  • 使用Eclipse创建testng.xml

让我们一个一个来看。

手动创建testng.xml

这里我们将使用五个术语

  • 套件
  • 测试
  • 方法

还有其他术语,但我们将在这篇文章中只讨论上述术语。

下图显示了层次结构,suite在顶部,方法在底部。它们也将以相同的顺序写入testng.xml文件。

什么是TestNG以及如何创建testng.xml文件?_第3张图片

  • TestNG中的suite由suite标记表示。
  • TestNG中的Test由test标记表示。
  • 包由package标记表示
  • 单个类由class标记表示。
  • TestNG中的方法由method标记表示。

标签也将遵循相同的层次结构。

我们可以省略一些标签,比如不强制提到package标签,因为每个标签都有一个用途,有时我们不需要标签。但是也有一些强制性的标签,比如suite和test。

现在,让我们运行我们的测试用例。我们可以用多种方式运行测试用例-

  • 我们可以运行包含测试用例的包。它将执行包内的所有测试用例。
  • 或者,我们可以运行包含测试用例的类。这将执行类中的所有测试用例。
  • 或者,我们可以运行特定的测试用例或测试方法。
通过testng.xml运行整个包

在项目的根目录下创建一个名为“testng.xml”的新文件(您可以为该文件命名任何名称,没有必要保持名称为testng.xml)

我们可以使用这些标记运行整个包>

如果我们还记得层次结构,suite标签将排在第一位,然后是test和package标签。


 

    
        
            
        
    

  • 所有标记都有一个name属性,用于定义与特定标记对应的名称。我们可以保留套件和测试名称,但包名称应该是我们想要执行的真实的包名称或路径。
  • 这里我们只有一个包,所以,我们把包的名称这样。

现在,运行这个XML文件。我们可以通过右键单击XML文件然后选择RunAsTestNGSuite来运行XML文件。

什么是TestNG以及如何创建testng.xml文件?_第4张图片

这将运行testng.xml并执行包中的所有案例。因为我们只有一个测试用例,所以它将是这种情况,我们将在控制台上看到下面的输出。

Executing first test case

===============================================
codekru
Total tests run: 1, Passes: 1, Failures: 0, Skips: 0
===============================================
通过testng.xml运行类

同样,我们也可以运行一个包含测试用例的类。这就需要以相同的顺序使用suite、test、classes和class标签。


 

    
        
            
        
    

这与我们对软件包所做的大致相同。

这里的类名应该以packageName.className的格式写入。我们的包名是

现在,让我们再次执行XML文件,我们将在控制台上打印以下输出。

Executing first test case

===============================================
codekru
Total tests run: 1, Passes: 1, Failures: 0, Skips: 0
===============================================

我们还可以通过testng.xml文件运行特定的测试用例,我们在另一篇文章中介绍了这个主题。请阅读这篇文章,以获得更多的见解。

使用Eclipse创建testng.xml

我们还可以使用eclipse创建XML文件,因此不必手动创建它。

  • 右键单击要执行其测试用例的类或包。我们将单击类以执行其案例。
  • 然后选择TestNG Convert to TestNG。

什么是TestNG以及如何创建testng.xml文件?_第5张图片

  • 点击“Convert to TestNG”后会打开一个弹出窗口。

什么是TestNG以及如何创建testng.xml文件?_第6张图片

  • 我们可以复制预览文本框中的内容并将其复制到我们的testng.xml文件中。



  
    
      
    
   
 

  • 我们可以运行XML文件,这将在类中运行测试用例。下面的输出将打印在控制台上。
Executing first test case

===============================================
Suite
Total tests run: 1, Passes: 1, Failures: 0, Skips: 0
===============================================

你可能感兴趣的:(unit,testing)