@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 异常时为空数组)最有意义。
我正在使用 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 异常时为空数组)最有意义。