首页 > 解决方案 > 动态设置测试注释

问题描述

我想创建一个数据驱动的框架,测试将基于 excel 中的数据执行。

目前,当我执行测试时,所有结果仅在一个 testName 下。

我正在寻找的是每次迭代都应该被视为单独的测试。

标签: javatestingtestng

解决方案


无法在运行时向现有类添加注释;请参阅在运行时添加 Java 注释。该问答建议使用Proxyto 或适配器来处理此问题,但我认为该方法不适用于 TestNG 测试。

您可能需要采取不同的方法。 TestNG 文档的第 5.14 节有一个示例,展示了如何以编程方式在测试类中运行测试:

TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { Run2.class });
testng.addListener(tla);
testng.run();

此示例创建一个TestNG对象并运行测试类 Run2。它还添加了一个TestListener. 您可以使用适配器类 org.testng.TestListenerAdapterorg.testng.ITestListener 自己实现。此接口包含各种回调方法,可让您跟踪测试何时开始、成功、失败等......

然后5.17 节解释了如何使用方法拦截器来按摩要调用的方法列表。最后,第 5.18 节解释了告诉 TestNG 使用诸如方法拦截器之类的侦听器的各种方法。

如果您将这些与从 Excel 电子表格中提取数据的代码结合起来,并以编程方式运行相关的测试类或测试方法。


推荐阅读