【问题标题】:How to make testng listeners runs before the @AfterClass annotation?如何让 testng 监听器在 @AfterClass 注释之前运行?
【发布时间】:2020-04-16 11:55:53
【问题描述】:

场景 - 我有一个生成执行报告的侦听器。我想将生成的测试报告添加到数据库中。我在@AfterClass 注释中有一个函数,需要将生成的报告添加到数据库中。

我面临的问题 - 侦听器正在生成报告,只有 @AfterClass 方法被执行。

有没有办法让监听器在@Test 注释测试执行后生成报告并将生成的报告添加到@AfterClass 注释中的数据库中?

如果有更好的方法来实现这一点,请告诉我。

【问题讨论】:

    标签: java selenium testng appium listener


    【解决方案1】:

    如果您使用TestListenerAdapter 实现了自己的测试侦听器,则您有方法onStartonFinishonTestSuccessonTestFailure。因此,如果您需要在每次测试后生成报告,只需将您的逻辑放入这些方法中即可。

    public class TestListener extends TestListenerAdapter {
    
        @Override
        public void onTestFailure(ITestResult iTestResult) {
        //your logic for report generation
        }
    
        @Override
        public void onFinish(ITestContext iTestContext) {
        //your logic for report generation
        }
    
        @Override
        public void onTestSuccess(ITestResult iTestResult) {
        //your logic for report generation
        }
    }
    

    我不知道你应该在什么情况下生成(以及如何)你的报告,但是根据你的需要你可以把你的报告逻辑放在相关的方法中。

    【讨论】:

    • 你能分享一个例子或文件来验证。
    • @user3782636 编辑了我的答案。 here 是关于听众的文档。 here doc 关于TestListenerAdapter
    • @user3782636 有帮助吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 2015-08-19
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多