首页 > 解决方案 > 获取在 TestNG 中调用数据提供者方法的测试类名称

问题描述

我正在使用 TestNG @DataProviderAnnotation 和@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作为参数,但它们都没有给我调用它的测试类名称。

有人可以帮忙吗?

标签: javatestngfactorydataprovidertestng-dataprovider

解决方案


推荐阅读