📅  最后修改于: 2023-12-03 15:08:24.351000             🧑  作者: Mango
TestNG 是一个功能丰富的测试框架,它能够让我们使用注解来编写测试用例,并且支持 testng.xml 文件作为测试运行配置文件。本文将介绍如何使用 TestNG 运行一组测试用例。
首先我们需要安装 TestNG,可以通过 maven 直接在项目中引入 TestNG:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.3.0</version>
<scope>test</scope>
</dependency>
或者下载 TestNG jar 包,将其添加到项目中。
TestNG 支持使用注解编写测试用例,常用的注解包括:
举个例子,我们可以创建一个名为 MyTest 的测试类,其中包含一个测试方法 add:
package com.example.test;
import org.testng.annotations.Test;
public class MyTest {
@Test
public void add() {
int result = 1 + 2;
assert result == 3;
}
}
在项目根目录下创建 testng.xml 文件,并在其中配置测试类和测试方法,示例如下:
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="MyTest Suite">
<test name="MyTest">
<classes>
<class name="com.example.test.MyTest"/>
</classes>
</test>
</suite>
有多种方式来运行测试,这里介绍两种:
在 pom.xml 中添加 TestNG Maven 插件,示例如下:
<plugins>
<!-- ... -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
在命令行执行 mvn test
即可运行测试。
首先需要下载 TestNG jar 包,并将其添加到 classpath 中。然后在命令行执行:
java org.testng.TestNG testng.xml
即可运行测试。我们也可以在创建一个运行测试的类,在类中编写如下代码:
package com.example.test;
import org.testng.TestNG;
import org.testng.collections.Lists;
public class TestRunner {
public static void main(String[] args) {
TestNG testng = new TestNG();
List<String> suites = Lists.newArrayList();
suites.add("testng.xml");
testng.setTestSuites(suites);
testng.run();
}
}
在命令行执行 java com.example.test.TestRunner
运行测试。
TestNG 运行测试后会生成一个结果报告,默认生成在 test-output 文件夹下。我们可以在 testng.xml 中配置报告类型和路径:
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="MyTest Suite">
<listeners>
<listener class-name="org.testng.reporters.EmailableReporter"/>
<listener class-name="org.testng.reporters.jq.Main"/>
</listeners>
<test name="MyTest">
<classes>
<class name="com.example.test.MyTest"/>
</classes>
</test>
<reporters>
<reporter type="emailable" output-directory="test-output"/>
<reporter type="xml" output-directory="test-output"/>
<reporter type="html" output-directory="test-output"/>
</reporters>
</suite>
其中 <listeners>
标签用于配置报告格式化器,<reporters>
标签用于配置报告生成方式和路径。