如何在运行@AfterSuite注释之前生成TestNg输出结果

如何在运行@AfterSuite注释之前生成TestNg输出结果,testng,Testng,在我的@AfterSuite注释中,我试图生成Jasper报告,该报告将testng results.xml作为输入。但是,这里的问题是,testng results.xml仅在执行@AfterSuite注释后生成。我想知道在运行@AfterSuite注释之前是否可以生成测试结果。欢迎提供任何帮助/建议 我知道有一些关于这个问题的答案。但是我没有找到确切的方法。文件testng results.xml是由testng内置的reporterorg.testng.reporters.XMLRepor

在我的
@AfterSuite
注释中,我试图生成Jasper报告,该报告将
testng results.xml
作为输入。但是,这里的问题是,
testng results.xml
仅在执行
@AfterSuite
注释后生成。我想知道在运行
@AfterSuite
注释之前是否可以生成测试结果。欢迎提供任何帮助/建议


我知道有一些关于这个问题的答案。但是我没有找到确切的方法。

文件
testng results.xml
是由testng内置的reporter
org.testng.reporters.XMLReporter
生成的。该报告员仅在报告阶段(即,只有在所有套房都完工后)才开始工作

因此,在
@AfterSuite
注释方法运行到完成之前,无法生成此文件

相反,您可以通过其
onExecutionFinish()
方法中的listener
org.testng.IExecutionListener
构建基于jasper的报告的逻辑

在生成所有报告的报告阶段之后,将调用此侦听器

另一个选项是执行以下操作:

  • 创建扩展
    org.testng.reporters.XMLReporter
  • 将TestNG配置为不运行默认报告。例如,如果您使用Maven作为构建工具并使用surefire插件,那么您可以通过添加以下内容来配置surefire插件以禁用默认报告
  • 
    usedefaultlisteners
    假的
    
  • 通过以下方式连接(1)中创建的侦听器:
  • @Listeners
    注释(或)
  • 标记(或)
  • 使用服务加载程序[请参阅]