例如,我有测试代码
@Test(dataprovider = "getData")
public void test(String data) {
//perform some action using 'data'
}
@DataProvider
public Object[][] getData(){
return new Object[][]{
{"One"},
{"Two"},
{"Three"},
{"Four"},
{"Five"}
};
}
例如,使用数据{“Three”}的测试将失败。我需要测试{“四”},{“五”}将跳过或失败(如果{“三”}失败).我该怎么做?谢谢。
2条答案
按热度按时间oxalkeyp1#
注意:当您尝试并行运行数据驱动测试时,此解决方案将不起作用。只有在按顺序运行数据驱动测试时,这才有效。
你可以这样做。
1.请确保您使用的是TestNG
7.0.0-beta1
(这是截至2018年12月16日的最新发布版本)1.让你的测试类实现
org.testng.IHookable
接口。1.现在,在
run()
方法中设置一个布尔标志,以指示如果发现异常,下游方法应该失败(如果测试方法引发异常,TestNG默认将其标记为失败)下面是一个示例,显示了所有这些操作。
下面是上面代码执行的输出。
ccrfmcuu2#
有个更简单的办法你可以用
ITestResult
参数声明一个@AfterMethod
方法--这个参数将自动注入测试结果。调用isSuccess()
查看方法是否通过。然后,您可以对该信息执行任何您想要的操作,例如通过抛出SkipException
来跳过将来的测试。结果: