java - 获取在 TestNG 中调用数据提供者方法的测试类名称
问题描述
我正在使用 TestNG @DataProvider
Annotation 和@Factory
功能来运行流程。当控件转到@DataProvider
方法时,我想知道从哪个测试类调用了这个 dataprovider 方法,并基于此我想提供测试数据。
这是我的 Bean 类:
public class Bean {
private String fName = null;
private String lName = null;
private String address = null;
public synchronized String getfName() {
return fName;
}
public synchronized void setfName(String fName) {
this.fName = fName;
}
public synchronized String getlName() {
return lName;
}
public synchronized void setlName(String lName) {
this.lName = lName;
}
public synchronized String getAddress() {
return address;
}
public synchronized void setAddress(String address) {
this.address = address;
}
}
这是我的 TestClass 的构造函数@Factory
@Factory(dataProvider = "dataProvider")
public TestClass(Bean bean) {
this.fName = bean.getfName();
this.lName = bean.getlName();
this.address = bean.getAddress();
}
Here is my DataProvider:
@DataProvider(name = "dataProvider")
public static Object[][] dataProvider() {
// 在这里,我想获取调用此 DataProvider 的测试类,因此 // 我将相应地提供测试数据。
Bean oneBean = new Bean();
oneBean.setfName("Nisarg");
oneBean.setlName("Dave");
oneBean.setAddress("India");
Bean secondBean = new Bean();
secondBean.setfName("ABCD");
secondBean.setlName("XYZ");
secondBean.setAddress("UK");
return new Object[][] {
new Object[] { oneBean },
new Object[] { secondBean }
};
}
在我的 DataProvider 中,我知道我可以传递 Method m 或ITestContext
作为参数,但它们都没有给我调用它的测试类名称。
有人可以帮忙吗?
解决方案
推荐阅读
- c# - C#如何修复文件到二进制到字符串到二进制转换期间的数据丢失
- python - 如何在每个组中查找一个字符串,然后比较其他列的值,然后将其存储在一个新的列中
- python - 类型错误:不支持的操作数类型 %:打印时为“NoneType”和“int”
- angular - 在Angular中获取动态添加的文本框值
- c# - 我可以从 Dapper DynamicParameters 中删除参数吗?
- javascript - scrollTop 与 scrollIntoView:为什么 scrollTop 不起作用?
- pyomo - 是否可以上传初始解决方案并检查是否可行
- powershell - 如何导入 PowerShell 模块以供管道任务使用
- c# - 如果不支持 T 的类型,我应该抛出什么异常?
- css - 如何避免出现水平滚动条?