断言失败时如何继续执行
2022-09-02 23:22:17
我正在使用Selenium RC,使用Java和eclipse和TestNG框架。我有以下代码片段:
assertTrue(selenium.isTextPresent("Please enter Email ID"));
assertTrue(selenium.isTextPresent("Please enter Password"));
第一个断言失败,执行已停止。但我想继续进一步的代码片段。
我正在使用Selenium RC,使用Java和eclipse和TestNG框架。我有以下代码片段:
assertTrue(selenium.isTextPresent("Please enter Email ID"));
assertTrue(selenium.isTextPresent("Please enter Password"));
第一个断言失败,执行已停止。但我想继续进一步的代码片段。
我建议你使用软断言,这些断言在TestNg中本地提供
package automation.tests;
import org.testng.asserts.Assertion;
import org.testng.asserts.SoftAssert;
public class MyTest {
private Assertion hardAssert = new Assertion();
private SoftAssert softAssert = new SoftAssert();
}
@Test
public void testForSoftAssertionFailure() {
softAssert.assertTrue(false);
softAssert.assertEquals(1, 2);
softAssert.assertAll();
}
资料来源:http://rameshbaskar.wordpress.com/2013/09/11/soft-assertions-using-testng/
Selenium IDE 使用 verify 来执行软断言,这意味着即使检查失败,测试也会继续,并在测试结束时或在硬断言事件时报告失败。
使用TestNG,可以通过使用自定义测试侦听器来获得这些软断言。我已经在我的博客上记录了如何做到这一点:http://davehunt.co.uk/2009/10/08/using-soft-assertions-in-testng.html
基本上,您需要创建自己的方法,在这些方法中,您可以捕获断言失败并将其添加到映射中。然后,在自定义侦听器中,如果映射不为空,则可以将测试设置为失败。verify*
afterInvocation