【问题标题】:Custom method execution at TestNG suites end在 TestNG 套件结束时执行自定义方法
【发布时间】:2014-03-04 19:11:12
【问题描述】:

我想在所有测试套件执行结束时运行一个自定义方法,无论成功还是失败。所以当testNG输出时

测试运行:6,失败:1,错误:0,跳过:0,经过的时间:80.718 秒

在此之后,假设我运行了 2 个 IT 套件,每个套件包含 3 种测试方法。所以在运行所有 6 个案例结束时,我想运行一些自定义方法。我怎样才能做到这一点? 我尝试实现自定义 IExecutionListener 和 IReporter,但它们都在每个套件中运行一次。所以对于我的 2 个 IT 课程,我让它们执行了两次。 任何人都可以建议在所有套件运行时执行一个回调的方法吗?

【问题讨论】:

    标签: java eclipse testing testng


    【解决方案1】:

    尽管 javadocs 说 IsuiteListener 的 onFinish 应该在所有套件运行时执行一次,但我看到它被执行了多次。所以我使用了 IExecutionListener。下面是我使用的代码。

    public class MyReporter implements IExecutionListener {
    
    
    @Override
    public void onExecutionStart() {
    
    }
    
    @Override
    public void onExecutionFinish() {
    
        ReportDownloadUtil.downloadReport();
    }
    
    
    
    }
    

    【讨论】:

      【解决方案2】:

      在 ISuiteListener 接口中尝试 onFinish()。根据文档,它在所有套件运行后运行。见here

      【讨论】:

      • 我想在所有套件都运行后运行一个方法。所以只运行所有套件的执行。
      • 我试过了,尽管文档说我想要什么,但当构建开始时,我看到 start 和 finish 方法执行了多次,不知道为什么。
      猜你喜欢
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 2015-10-26
      • 2019-01-28
      • 2014-07-24
      • 2019-02-01
      • 2015-10-20
      相关资源
      最近更新 更多