断言失败时如何继续执行

2022-09-02 23:22:17

我正在使用Selenium RC,使用Java和eclipse和TestNG框架。我有以下代码片段:

assertTrue(selenium.isTextPresent("Please enter Email ID"));
assertTrue(selenium.isTextPresent("Please enter Password"));

第一个断言失败,执行已停止。但我想继续进一步的代码片段。


答案 1

我建议你使用软断言,这些断言在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/


答案 2

Selenium IDE 使用 verify 来执行软断言,这意味着即使检查失败,测试也会继续,并在测试结束时或在硬断言事件时报告失败。

使用TestNG,可以通过使用自定义测试侦听器来获得这些软断言。我已经在我的博客上记录了如何做到这一点:http://davehunt.co.uk/2009/10/08/using-soft-assertions-in-testng.html

基本上,您需要创建自己的方法,在这些方法中,您可以捕获断言失败并将其添加到映射中。然后,在自定义侦听器中,如果映射不为空,则可以将测试设置为失败。verify*afterInvocation


推荐