@DataProvider returns 100 列值

@DataProvider returns 100 column values

我正在使用 TestNG 框架进行自动化。 DataProvider 方法 returns 来自 Excel sheet.I 的每一行的 100 列值(测试所需的数据)需要在我的@Test 中使用它们。我如何在@Test 方法中传递 100 个参数?有什么简单的方法可以做到吗? @Test 方法很难写100 个参数。还有其他方法吗?

@DataProvider(name="InputData")
public Object[][] InputData() throws IOException
{
    Object[][] data = testData(dataFile,"Sheet1");
    return data;
}


@Factory(dataProvider = "InputData")
public A_Test(String a,String b, , , , , , , , , , , )
{

        this.stream=a;
        this.Keyword=b;

}

只需传递 varaggs String... str

@Factory(dataProvider = "InputData")
public A_Test(String... str) {
}

一些需要考虑的事情

1.大而难以阅读的测试报告

每个调用都单独记录,包含所有参数。即使有大约 5 个参数和大约 50 次调用,它也变得不可读。

2。异常处理

在数据提供程序中执行复杂的逻辑不是一个好主意。当 @DataProvider 中发生异常时,将跳过所有使用它的测试。 当您读取 @DataProvider 中的 Excel 文件时,可能会因为找不到文件、文件太大、文件格式错误等原因而失败。

您很可能希望这些测试失败,所以您的构建也会失败。有关可能的解决方案,请参阅 http://rolf-engelhard.de/2011/10/fail-instead-of-skip-a-test-when-testngs-dataprovider-throws-an-exception/。对我来说,解决方案 1(测试数据提供者)或 2(return 异常时为空数组)最有意义。