即使dataprovider的一个方法失败,也不应跳过依赖于TestNG的方法

即使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")

假设我们在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")
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问题页面中,并在中开始讨论