代码之家  ›  专栏  ›  技术社区  ›  Appu Mistri

如何在运行@aftersuite annotation之前生成测试输出结果

  •  0
  • Appu Mistri  · 技术社区  · 6 年前

    在我的 @AfterSuite 注释,我正在尝试生成采用 testng-results.xml 作为输入。但问题是, 测试结果.xml 仅在执行后生成 @套房 注释。我想知道在运行之前是否可以生成测试结果 @套房 注释。感谢任何帮助/建议。

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Krishnan Mahadevan    6 年前

    文件 testng-results.xml 由testng的内置报告程序生成 org.testng.reporters.XMLReporter . 此报告程序仅在报告阶段启动(即,只有在所有套件运行完成之后)。

    因此,在 @AfterSuite 带注释的方法运行到完成。

    您可以通过侦听器构建基于Jasper的报告的逻辑。 org.testng.IExecutionListener 在其 onExecutionFinish() 方法。

    这个监听器将在生成所有报告的报告阶段之后被调用。

    另一种选择是执行以下操作:

    1. 创建扩展的新报告程序 org.testng.reporters.xmlreporter
    2. 将testng配置为不运行默认报告。例如,如果您使用Maven作为构建工具,并且使用SureFire插件,那么可以配置SureFire插件,通过添加以下内容来禁用默认报告
    <properties>
        <property>
            <name>usedefaultlisteners</name>
            <value>false</value>
        </property>
    </properties>
    
    1. 在(1)中创建的侦听器中通过以下方式连接:
      1. @Listeners 注释(或)
      2. <listeners> 标签(或)
      3. 使用服务加载程序[请参见 here ]
    推荐文章