zoukankan      html  css  js  c++  java
  • TestNG 断言类重写

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

    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:
    ");
                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());
            }
        }
    }
  • 相关阅读:
    数组,一维,二维,多维
    类函数:string、math
    while和for的内嵌
    循环语言(for)
    选择语言之switch case
    程序语言
    语言、数据和运算符
    原理之一,进制转换
    HTML第一部分
    结构体共用变量 递归
  • 原文地址:https://www.cnblogs.com/zhangminjie/p/4349183.html
Copyright © 2011-2022 走看看