我正在尝试创建一个 testNG 测试,该测试取决于上一个测试的成功执行(比如我想创建一个帐户然后编辑一些详细信息)。我想将它与数据提供者结合起来。我决定使用dependsOnMethods,因为这似乎是合乎逻辑的,但是我注意到它的行为与我预期的不同。在下面的示例中,我希望测试“三”被跳过一次并执行一次,因为第一组数据提供通过条件,而另一组数据提供失败条件。不幸的是,我似乎错过了“dependsOnMethods”背后的一些概念。也许还有其他方法可以做到这一点?谢谢你的帮助。
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.testng.Assert;
public class simpleTest {
@DataProvider(name = "provided data")
public static Object[][] data() throws Exception {
Object[][] data = new Object[][] {
{true},
{false}
};
return data;
}
@Test(dataProvider = "provided data")
public void one(boolean cond){
System.out.println("******** 1");
}
@Test(dataProvider = "provided data")
public void thisfailssometimes(boolean cond){
System.out.print("******** 2 !!!");
if (cond) {System.out.println("PASS");}else{System.out.println("FAIL");};
Assert.assertTrue(cond);
}
@Test(dataProvider = "provided data",dependsOnMethods = {"thisfailssometimes"})
public void three(boolean cond){
System.out.println("******** 3");
}
}