我在Java上使用Selenium和TestNG编写测试。如果发现异常,如何跳过/失败测试的其余部分?
例如,如果我在测试中有3个步骤
@Test(priority = 1)
public void login() {
}
@Test(priority = 2)
public void checkLoginResult() {
}
@Test(priority = 3)
public void submitImage() {
}
如果在第一次测试“登录”时捕获到Selenium异常(TimeOutException),我该如何跳过测试的其余部分?
是否有一些注释或任何可用于此目的的方法?
由于
答案 0 :(得分:5)
检查TestNG文档中的dependsOnMethods
:
http://testng.org/doc/documentation-main.html#dependencies-with-annotations
如果将此参数添加到第二次和第三次测试,如果第一次测试失败,它们将不会执行:
@Test(priority = 1)
public void login() {
}
@Test(priority = 2, dependsOnMethods = {"login"})
public void checkLoginResult() {
}
@Test(priority = 3, dependsOnMethods = {"login"})
public void submitImage() {
}
答案 1 :(得分:1)
@Test(priority = 2,dependsOnMethods={"login"})
public void checkLoginResult() {
}
@Test(priority = 3,dependsOnMethods={"login","checkLoginResult"})
public void submitImage() {
}
这样就会跳过家属。为了使它们失败,编写一个监听器类,您可以在每个方法失败后检查,如果失败的方法具有depndant方法,那么您可以使它们失败。这样的事情可以做到。