TestNG 断言类重写

来源:互联网 发布:结构设计软件 编辑:程序博客网 时间:2024/05/18 13:26

断言失败截图,且不退出用例,提供结算方法结算断言

public class SoftAssert extends Assertion {    private WebDriver driver;    private final String SCREENSHOT_PATH =System.getProperty("user.dir")+"/target/testreport/screenshot/";    public SoftAssert(WebDriver driver){        this.driver=driver;    }    private Map<AssertionError, IAssert> m_errors = Maps.newLinkedHashMap();    private List<String> screenshotList =new ArrayList<>();    /**     * 重写方法,断言失败不退出用例,加入失败截图     * @param a     */    @Override    public void executeAssert(IAssert a) {        try {            a.doAssert();        } catch(AssertionError ex) {            onAssertFailure(a, ex);            m_errors.put(ex, a);            BasisUtil util=new BasisUtil();            screenshotList.add(util.getScreenshot(driver, SCREENSHOT_PATH));        }    }    /**     * 结算     */    public void assertAll() {        if (! m_errors.isEmpty()) {            StringBuilder sb = new StringBuilder("The following asserts failed:\n");            boolean first = true;            for (Map.Entry<AssertionError, IAssert> ae : m_errors.entrySet()) {                if (first) {                    first = false;                } else {                    sb.append(", ");                }                sb.append(ae.getKey().getMessage());            }            throw new AssertionError(sb.toString());        }    }}
0 0
原创粉丝点击