Parameters
@Parameters 描述了如何将参数传递给 @Test 方法。我们可以通过两种方式为测试方法提供参数值:
- 通过 testng XML 配置文件
- 通过数据提供者
以下是@Parameters 注解支持的属性列表:
属性 | 描述 |
---|---|
value | 用于填充此方法参数的变量列表。 |
@Parameters 注释可以放置在以下位置:
-
在任何已经有 @Test、@Before/After 或 @Factory 注释的方法上。
-
在测试类的最多一个构造函数上。每当需要实例化您的测试类时,TestNG 将使用初始化为 testng.xml 中指定值的参数调用此特定构造函数。此功能可用于将类中的字段初始化为随后将被测试方法使用的值。
创建测试用例类
让我们看看如何使用@Parameters注解
- 创建一个 java 测试类,比如说, TestAnnotationParameter.java 在 /work/testng/src.
- 将测试方法 testparameter() 添加到您的测试类。
- 向方法 testparameter() 添加注解 @Test。指定Java 方法的参数firstName应接收名为first-name的 XML 参数的值。此 XML 参数在 testng.xml 中定义
以下是TestAnnotationParameter.java 的内容。
import org.testng.annotations.Test; import org.testng.annotations.Parameters; public class TestAnnotationParameter { @Parameters({ "first-name" }) @Test public void testparameter(String firstName) { System.out.println("Invoked method testparameter with string " + firstName); } }
创建 testng.xml
接下来,让我们在其中创建 testng.xml 文件 /work/testng/src, 执行测试用例。此文件以 XML 格式捕获您的整个测试。该文件使您可以轻松地在一个文件中描述所有测试套件及其参数,您可以将其签入代码存储库或通过电子邮件发送给同事。它还可以轻松提取测试的子集或拆分多个运行时配置(例如,testngdatabase.xml 将仅运行测试您的数据库的测试)。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite name="Suite"> <parameter name="first-name" value="JC2182"/> <test thread-count="5" name="Test"> <classes> <class name="TestAnnotationParameter"/> </classes> </test> <!-- Test --> </suite> <!-- Suite -->
测试执行结果
Invoked method testparameter with string JC2182 =============================================== Suite Total tests run: 1, Passes: 1, Failures: 0, Skips: 0 ===============================================