我在我的脚本中使用软断言,但是如果失败,如果脚本移动到下一个测试用例

时间:2018-01-09 19:57:51

标签: testng assertion

这是我的代码:

@Test(priority=1)
public void verifyPageTitle () throws InterruptedException
{
String Actual_title=driver.getTitle();

String Expected_title = "Abc";

SoftAssert assertion = new SoftAssert(); //Soft Assertion
System.out.println("verifyPageTitle is started");

assertion.assertEquals(Actual_title, Expected_title, "URL doesn't n 
match");
assertion.assertAll();
System.out.println("verifyPageTitle is completed");
}

这里没有打印" verifyPageTitle已经完成""但断言失败了。

1 个答案:

答案 0 :(得分:1)

请参阅How To Use Soft Assert In TestNG | TestNG Tutorial

  

Soft Assert - Soft Assert在@Test期间收集错误。当断言失败时,Soft Assert不会抛出异常,并且会在断言语句之后继续执行下一步。

     

如果有任何异常并且您想要抛出它,那么您需要在@Test和测试套件中使用assertAll()方法作为最后一个语句再次继续下一步@Test原样。

from the TestNG API

  

当断言失败时,不要抛出异常但记录失败。 如果至少有一个[soft]断言失败,则调用assertAll()将导致异常抛出。

也就是说,SoftAssert#assertAll会在调用时将任何“软断言”转换为“抛出的异常”:如果存在“失败的软断言”,则调用assertAll将立即终止测试的执行。因此,跳过当前测试方法中的任何剩余代码。