这是我的代码:
@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已经完成""但断言失败了。
答案 0 :(得分:1)
请参阅How To Use Soft Assert In TestNG | TestNG Tutorial。
Soft Assert - Soft Assert在@Test期间收集错误。当断言失败时,Soft Assert不会抛出异常,并且会在断言语句之后继续执行下一步。
如果有任何异常并且您想要抛出它,那么您需要在@Test和测试套件中使用
assertAll()
方法作为最后一个语句再次继续下一步@Test原样。
当断言失败时,不要抛出异常但记录失败。 如果至少有一个[soft]断言失败,则调用
assertAll()
将导致异常抛出。
也就是说,SoftAssert#assertAll
会在调用时将任何“软断言”转换为“抛出的异常”:如果存在“失败的软断言”,则调用assertAll
将立即终止测试的执行。因此,跳过当前测试方法中的任何剩余代码。