即使dataprovider的一个方法失败,也不应跳过依赖于TestNG的方法
假设我们在TestNG中有两个使用dataprovider的方法即使dataprovider的一个方法失败,也不应跳过依赖于TestNG的方法,testng,testng-dataprovider,Testng,Testng Dataprovider,假设我们在TestNG中有两个使用dataprovider的方法 @Test(dataProvider = dpA) testA(String str){ logger.info(str); } @Test(dataProvider = dpB, dependsOnMethods = {"testA"}) testB(String str){ logger.info(str); } @DataProvider(name = "dpA")
@Test(dataProvider = dpA)
testA(String str){
logger.info(str);
}
@Test(dataProvider = dpB, dependsOnMethods = {"testA"})
testB(String str){
logger.info(str);
}
@DataProvider(name = "dpA")
public Object[][] dpA(){
return new Object[][] { { "This test fails"}, {"This test passes"} };
}
@DataProvider(name = "dpB")
public Object[][] dpB(){
return new Object[][] { { "new test"}, {"some test"} };
}
给定:只有在testA
之后才能执行testB
,这就是为什么我们使用dependsOnMethods
当前场景:TestNG跳过
testB
,即使来自数据提供程序的任何案例失败。目标:
testB
应在数据提供程序的任何一个案例通过时运行。当前
dependsOnMethods
是一个硬依赖关系,即必须完全满足它,然后才能执行依赖方法
@DataProvider
受支持的@Test
方法基本上只是多次运行相同的@Test
的一种方法(当然是使用多组数据,而不是使用相同的数据,这是在设置@Test
方法的invocationCount
属性时发生的情况)
所以,在目前的TestNG中,这是不可能实现的,因为它不会干扰测试结果等,并导致无法解释的行为
如果您希望在TestNG中看到这一点,那么我建议您将其作为缺陷提交到TestNG问题页面中,并在中开始讨论