Selenium/Testng:如果发生异常,则跳过@Test的其余部分或使其失败

Selenium/Testng:如果发生异常,则跳过@Test的其余部分或使其失败,selenium,testng,Selenium,Testng,我正在使用Selenium和TestNG编写测试用例 当捕获到异常时,如何跳过/不通过测试的其余部分 我试着在每一次@Test中抓住block。每个@Test都基于优先级,优先级依赖于以前的测试 例如,如果我在测试中有3个步骤 @BeforeTest public void login(){ } @Test(priority = 1) public void Verifytabs() { } @Test(priority = 2) public void checkhomepage() { }

我正在使用
Selenium
TestNG
编写测试用例

当捕获到异常时,如何跳过/不通过测试的其余部分

我试着在每一次@Test中抓住block。每个@Test都基于优先级,优先级依赖于以前的测试

例如,如果我在测试中有3个步骤

@BeforeTest
public void login(){
}
@Test(priority = 1)
public void Verifytabs() {
}
@Test(priority = 2)
public void checkhomepage() {
 }
@Test(priority = 3)
public void clickonProfile() {
}
@AfterTest
public void logout()
{
}

如果任何
Test
方法依赖于其他测试方法,则可以使用
dependsOnMethods
注释

示例代码:

@BeforeTest
public void login(){
}
@Test(priority = 1)
public void Verifytabs() {
}
@Test(dependsOnMethods = {"Verifytabs"})
public void checkhomepage() {
}
@Test(dependsOnMethods={"checkhomepage"})
public void clickonProfile() {
}

@AfterTest
public void logout()
{
}

在这里,如果
Verifytabs
测试方法失败,那么所有依赖的方法都将被跳过,如果通过,那么所有依赖的方法都将被执行。

您不必跳过它们,TestNG将自动跳过任何依赖于失败测试用例的测试用例。(参见Subburaj关于如何做的回答)我在SYSO的每个方法中都有catch块,所以所有这些都将作为最终输出传递给下一个@Test。由于哪些dependsOnMethods不起作用。@Shruti:您是否在测试中测试异常?如果没有,那么您需要在catch块中添加一些断言(
Assert.fail(“异常发生”);
)以使测试失败谢谢,当我添加Assert.fail(“异常发生”)时,它会打印上面的消息,并显示整个错误堆栈,有什么办法可以避免吗?@Shruti:您是否在catch block中添加了任何其他语句?@Shruti:希望此答案解决了您所请求的问题。请单击勾号按钮接受答案,并放弃投票。