TestNG - 与 Ant 集成



在本节中,我们将演示如何使用 Ant 运行 TestNG。请按照以下步骤操作:

步骤 1:下载 Apache Ant

下载最新版本的 Apache Ant

操作系统 归档名称
Windows apache-ant-1.10.10-bin.zip
Linux apache-ant-1.10.10-bin.tar.gz
Mac apache-ant-1.10.10-bin.tar.gz

步骤 2:设置 Ant 环境

设置 **ANT_HOME** 环境变量,使其指向 Ant 库在您机器上的基本目录位置。假设我们已将 Ant 库存储在文件夹 apache-ant-1.8.4 中。

操作系统 输出
Windows 将环境变量 ANT_HOME 设置为 C:\Program Files\Apache Software Foundation\apache-ant-1.10.10
Linux Export ANT_HOME=/usr/local/apache-ant-1.10.10
Mac Export ANT_HOME=/Library/apache-ant-1.10.10

将 Ant 编译器位置追加到系统路径,如下所示:

操作系统 描述
Windows 在系统变量 Path 的末尾追加字符串 %ANT_HOME\bin。
Linux export PATH=$PATH:$ANT_HOME/bin/
Mac 无需操作。

步骤 3:下载 TestNG 归档文件

下载所需的 jar 文件 http://www.testng.org.

操作系统 归档名称
Windows testng-7.4.jar
Linux testng-7.4.jar
Mac testng-7.4.jar

步骤 4:创建项目结构

  • 在 ** /work/testng/src ** 中创建一个文件夹 **TestNGWithAnt**。

  • 在 ** /work/testng/src/TestNGWithAnt ** 中创建一个文件夹 **src**。

  • 在 ** /work/testng/src/TestNGWithAnt ** 中创建一个文件夹 **test**。

  • 在 ** /work/testng/src/TestNGWithAnt ** 中创建一个文件夹 **lib**。

  • 在 ** /work/testng/src/TestNGWithAnt/src ** 文件夹中创建 **MessageUtil** 类。

/*
* This class prints the given message on console.
*/

public class MessageUtil {

   private String message;

   //Constructor
   //@param message to be printed
   public MessageUtil(String message) {
      this.message = message;
   }

   // prints the message
   public void printMessage() {
      System.out.println(message);
      return message;
   }

   // add "Hi!" to the message
   public String salutationMessage() {
      message = "Hi!" + message;
      System.out.println(message);
      return message;
   }
}
  • 在 ** /work/testng/src/TestNGWithAnt/src ** 文件夹中创建 **TestMessageUtil** 类。

import org.testng.Assert;
import org.testng.annotations.Test;


public class TestMessageUtil {
   String message = "Manisha";
   MessageUtil messageUtil = new MessageUtil(message);

   @Test
   public void testPrintMessage() {
      System.out.println("Inside testPrintMessage()");
      Assert.assertEquals(message,messageUtil.printMessage());
   }

   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Manisha";
      Assert.assertEquals(message,messageUtil.salutationMessage());
   }
}
  • 将 testng-7.4.jar 复制到 ** /work/testng/src/TestNGWithAnt/lib ** 文件夹中。

创建 Ant build.xml 文件

首先,我们需要定义 TestNG Ant 任务,如下所示:

<taskdef name = "testng" classname = "org.testng.TestNGAntTask">
   <classpath>
      <pathelement location = "lib/testng-7.4.jar"/>
   </classpath>
</taskdef>

然后,我们将使用 Ant 中的 **<testng>** 任务来执行我们的 TestNG 测试用例。

**build.xml** 文件如下所示:

<project name = "TestNGTest" default = "test" basedir = ".">

   <!-- Define <testng> task -->

   <taskdef name = "testng" classname = "org.testng.TestNGAntTask">
      <classpath>
         <pathelement location = "lib/testng-7.4.jar"/>
      </classpath>
   </taskdef>

   <property name = "testdir" location = "test" />
   <property name = "srcdir" location = "src" />
   <property name = "libdir" location = "lib" />
   <property name = "full-compile" value="true" />

   <path id = "classpath.base"/>
   <path id = "classpath.test">

   <fileset dir = "${libdir}">
      <include name = "**/*.jar" />
   </fileset>

   <pathelement location = "${testdir}" />
   <pathelement location = "${srcdir}" />

   <path refid = "classpath.base" />
   </path>

   <target name = "clean" >
      <delete verbose="${full-compile}">
         <fileset dir = "${testdir}" includes="**/*.class" />
      </delete>
   </target>

   <target name = "compile" depends="clean">
      <javac srcdir = "${srcdir}" destdir = "${testdir}" verbose="${full-compile}">
         <classpath refid = "classpath.test"/>
      </javac>
   </target>

   <target name = "test" depends="compile">
      <testng outputdir = "${testdir}" classpathref="classpath.test">
         <xmlfileset dir = "${srcdir}" includes="testng.xml"/>
      </testng>
   </target>

</project>

运行以下 Ant 命令。

/work/testng/src/TestNGWithAnt$ ant

验证输出。

test:
   [testng] [TestNG] Running:
   [testng]   /work/testng/src/TestNGWithAnt/src/testng.xml
   [testng]
   [testng] Inside testPrintMessage()
   [testng] Manisha
   [testng] Inside testSalutationMessage()
   [testng] Hi!Manisha
   [testng]
   [testng] ===============================================
   [testng] Plug ANT test Suite
   [testng] Total tests run: 2, Failures: 0, Skips: 0
   [testng] ===============================================
   [testng]

BUILD SUCCESSFUL
Total time: 1 second
广告