Testng 简明教程
TestNG - Plug with ANT
在本章中,我们将演示如何使用 ANT 运行 TestNG。让我们按照下面给出的步骤进行操作 −
Step 1: Download Apache Ant
下载 Apache Ant 的最新版本
OS |
Archive Name |
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 |
Step 2: Set Ant Environment
设置 ANT_HOME 环境变量,指向 ANT 库存储在你机器上的基本目录位置。假设我们已将 Ant 库存储在 apache-ant-1.8.4 文件夹中。
OS |
Output |
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 编译器位置附加到系统路径,如下所示 −
OS |
Description |
Windows |
在系统变量 Path 的末尾追加字符串 %ANT_HOME\bin 。 |
Linux |
export PATH=$PATH:$ANT_HOME/bin/ |
Mac |
Not required. |
Step 3: Download TestNG Archive
下载所需的 jar 文件 http://www.testng.org.
OS |
Archive name |
Windows |
testng-7.4.jar |
Linux |
testng-7.4.jar |
Mac |
testng-7.4.jar |
Step 4: Create Project Structure
-
在 /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());
}
}
-
在 /work/testng/src/TestNGWithAnt/lib 文件夹中复制 testng-7.4.jar。
Create 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