方案: 我已经构建了一个testNG类,它包含多个测试方法+一个excel读取方法。我希望根据excel表中的行数将所有测试方法都放到迭代中。 我还希望有选择地利用测试方法中的数据值。即 所有第1列值仅用于测试1 .. 所有col 2值仅在测试2中使用..所以..
我不认为这可以通过DataProvider的单个实例实现,这是我想要的。
任何帮助表示感谢。
仅供参考我在这里粘贴我的编程逻辑:
我的编程代码: 公共类样本{
@DataProvider(name = "dp")
public static Object[][] readExcel() {
.
.
.
.
return data;
}
@Test(dataProvider = "dp")
public void test1(String a,String b) throws Exception {
System.out.println("test 1 OUTPUT IS "+ a);
}
@Test(dataProvider = "dp")
public void test2(String a,String b) throws Exception {
System.out.println("test 1 OUTPUT IS "+ b);
}
}
{excel中的数据: 第1排:山姆米勒 第2行:彼得保罗
输出(目前即将发布): 测试1输出是山姆; 测试1输出是彼此; 测试2输出是米勒; 测试2 OUTPUT是保罗;
输出(必填): 测试1输出是山姆; 测试2输出是米勒; 测试1输出是彼此; 测试2输出是保罗; }
答案 0 :(得分:1)
您的数据提供者可以将您的方法作为输入。您可以使用TC名称命名列标题,并且只能在数据提供者中获取列方法名称的值,例如
Courtesy TestNG documentation:“如果你声明你的@DataProvider将java.lang.reflect.Method作为第一个参数,TestNG将为第一个参数传递当前的测试方法。这在几个时特别有用。测试方法使用相同的@DataProvider,并且您希望它根据为其提供数据的测试方法返回不同的值。“