如何使testng侦听器在@AfterClass批注之前运行?

时间:2019-12-26 07:08:36

标签: java selenium testng appium listener

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

我面临的问题-侦听器仅在执行@AfterClass方法时生成报告。

一旦执行@Test批注测试,是否有办法使侦听器生成报告,并以@AfterClass批注将生成的报告添加到数据库中?

请让我知道是否有更好的方法可以实现这一目标。

1 个答案:

答案 0 :(得分:0)

如果您使用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
    }
}

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