- TestNG 教程
- TestNG - 首页
- TestNG - 概述
- TestNG - 环境
- TestNG -编写测试
- TestNG - 基本注解
- TestNG - 执行过程
- TestNG - 执行测试
- TestNG - 套件测试
- TestNG - 忽略测试
- TestNG - 组测试
- TestNG - 异常测试
- TestNG - 依赖测试
- TestNG - 参数化测试
- TestNG - 运行JUnit测试
- TestNG - 测试结果
- TestNG - 注解转换器
- TestNG - 断言
- TestNG - 并行执行
- TestNG - 与ANT集成
- TestNG - 与Eclipse集成
- TestNG - TestNG vs JUnit
- TestNG 有用资源
- TestNG - 快速指南
- TestNG - 有用资源
- TestNG - 讨论
TestNG - 基本注解 - DataProvider
@DataProvider 注解帮助我们编写数据驱动的测试用例。@DataProvider 注解使我们能够通过传递不同的数据集来多次运行测试方法。
@DataProvider 注解支持的属性列表如下:
属性 | 描述 |
---|---|
name |
此数据提供程序的名称。如果未提供,则此数据提供程序的名称将自动设置为方法的名称。带注解的方法必须返回一个 Object[][],其中每个 Object[] 可以分配给测试方法的参数列表。 |
parallel |
如果设置为true,则使用此数据提供程序生成的测试将并行运行。默认值为false。 |
创建测试用例类
创建一个 Java 测试类,例如,TestAnnotationDataProvider.java 在 /work/testng/src 目录下。
向测试类添加一个测试方法 testMethod()。
向 testMethod() 方法添加 @Test 注解。
向测试类添加一个带有 @DataProvider 注解的方法 dataProviderMethod。
实现测试条件并检查 @DataProvider 注解的行为。
以下是 TestAnnotationAfterMethod.java 的内容
import org.testng.annotations.Test; import org.testng.annotations.DataProvider; public class TestAnnotationDataProvider { @DataProvider(name = "data-provider") public Object[][] dataProviderMethod() { return new Object[][] { { "data one" }, { "data two" }, { "data three" } }; } @Test(dataProvider = "data-provider") public void testMethod(String data) { System.out.println("Data is: " + data); } }
创建 testng.xml
接下来,让我们在 /work/testng/src 目录下创建一个 testng.xml 文件来执行测试用例。此文件以 XML 格式捕获您的所有测试。此文件使您可以轻松地在单个文件中描述所有测试套件及其参数,您可以将此文件检入您的代码库或通过电子邮件发送给同事。它还可以轻松地提取测试的子集或拆分多个运行时配置(例如,testngdatabase.xml 只运行测试您的数据库的测试)。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite name="Suite"> <test thread-count="5" name="Test"> <classes> <class name="TestAnnotationDataProvider"/> </classes> </test> <!-- Test --> </suite> <!-- Suite -->
使用 javac 编译测试用例。
/work/testng/src$ javac TestAnnotationDataProvider.java
现在,运行 testng.xml,它将运行在 <test> 标签中定义的测试用例。正如您所看到的,@DataProvider 将参数传递给测试方法。
/work/testng/src$ java org.testng.TestNG testng.xml
验证输出。
Data is: data one Data is: data two Data is: data three =============================================== Suite Total tests run: 3, Passes: 3, Failures: 0, Skips: 0 ===============================================