当前位置 : 主页 > 网络安全 > 测试自动化 >

可以将参数传递给TestNG DataProvider?

来源:互联网 收集:自由互联 发布时间:2021-06-19
我们想针对一组数据值来运行我们的一些测试,验证相同的条件是否适用于每个.数据当前存储在平面文件或简单的Excel电子表格中. 我的第一个想法是创建一个TestNG DataProvider,它会从文件
我们想针对一组数据值来运行我们的一些测试,验证相同的条件是否适用于每个.数据当前存储在平面文件或简单的Excel电子表格中.

我的第一个想法是创建一个TestNG DataProvider,它会从文件中加载数据,并用于为每个数据值调用一次测试方法.我的问题是不同的测试需要从不同的文件加载数据,似乎没有任何方式发送参数到DataProvider.有人知道这是否可行?

理想情况下,我希望我的代码看起来像以下(简化示例):

public class OddTest {
    @DataProvider(name = "excelLoader")
    public Iterator<Object[]> loadExcelData(String fileName) {
        ...
    }

    @Test(dataProvider = "excelLoader" dataProviderParameters = { "data.xls" })
    public void checkIsOddWorks(int num)
        assertTrue(isOdd(num));
    }
}
您可以使用 TestNG’s dependency injection capabilies访问DataProvider中的所有定义参数.这是需要test_param参数的一些DataProvider示例:

@DataProvider(name = "usesParameter")
public Object[][] provideTestParam(ITestContext context) {
    String testParam = context.getCurrentXmlTest().getParameter("test_param");
    return new Object[][] {{ testParam }};
}

有关ITestContext类的详细信息,请参阅TestNG JavaDoc.

上一篇:自动化ssh-copy-id
下一篇:3 单元测试
网友评论