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());
            }
        }
    }
  • 相关阅读:
    注册表编程初步
    内层位移换算到外层
    运算符重载
    按右手定则求已经知三点的法向量
    链接错误 2001、2019
    UML规则笔记
    关于动态链接库、静态链接库
    05 nfs、rsync、inotify综合案例
    rsync本地同步
    05 NFS基础知识
  • 原文地址:https://www.cnblogs.com/zhangminjie/p/4349183.html
Copyright © 2011-2022 走看看