Testng 简明教程
TestNG - Executing Tests
使用 TestNG 类执行测试用例。此类是 TestNG 框架中运行测试的主要入口点。用户可以创建自己的 TestNG 对象并以多种不同方式调用它,例如:
-
On an existing testng.xml.
-
对于完全由 Java 创建的合成 testng.xml。
-
通过直接设置测试类。
你还可以定义要包括或排除哪些组、分配参数等。命令行参数为:
-
-d outputdir:指定输出目录。
-
-testclass class_name:指定一个或多个类名。
-
-testjar jar_name:指定包含测试的 jar。
-
-sourcedir src1;src2:; 分隔的源目录列表(仅在使用 javadoc 注解时使用)。
-
-target
-
-groups
-
-testrunfactory
-
-listener
我们将在下面的示例中使用现有的 testng.xml 创建 TestNG 对象。
Create a Class
在 /work/testng/src 中创建要测试的 java 类,比如 MessageUtil.java 。
/*
* 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 String printMessage() {
System.out.println(message);
return message;
}
}
Create Test Case Class
-
创建一个 java 测试类,例如 SampleTest.java 。
-
将 testPrintMessage() 测试方法添加到你的测试类。
-
在方法 testPrintMessage() 中添加一个注释 @Test。
-
实现测试条件,并使用 TestNG 的 assertEquals API 检查条件。
在 /work/testng/src 创建名为 SampleTest.java 的 Java 类文件。
import org.testng.Assert;
import org.testng.annotations.Test;
public class SampleTest {
String message = "Hello World";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testPrintMessage() {
Assert.assertEquals(message, messageUtil.printMessage());
}
}
Create testng.xml
接下来,让我们在 /work/testng/src 中创建一个 testng.xml 文件来执行测试用例。此文件以 XML 捕获您的完整测试。此文件使您可以轻松在文件中的所有测试套件及其参数,您可以将其检入代码存储库或发送电子邮件给同事。它还可以轻松提取测试的子集或拆分多个运行时配置(例如,testngdatabase.xml 将仅运行对数据库进行练习的测试)。
<?xml version = "1.0" encoding = "UTF-8"?>
<suite name = "Sample test Suite">
<test name = "Sample test">
<classes>
<class name = "SampleTest" />
</classes>
</test>
</suite>
使用 javac 编译测试用例。
/work/testng/src$ javac MessageUtil.java SampleTest.java
现在,运行 testng.xml,它将运行在 <test> 标签中定义的测试用例。
/work/testng/src$ java org.testng.TestNG testng.xml
验证输出。
Hello World
===============================================
Sample test Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================