【问题标题】:maven surefire reports in default lifecyle默认生命周期中的 maven surefire 报告
【发布时间】:2016-08-31 11:50:54
【问题描述】:

如何在 Maven 的默认生命周期中生成万无一失的报告。我们在 teamcity 设置了工作,目标是

mvn clean install -Pprod

这个作业运行所有的 junits,我想创建项目中运行的所有测试的 HTML 报告。我遇到了 sure-fire-reports 插件,但它仅在站点阶段生成报告,它不会在默认的全新安装阶段生成报告。

请帮助我如何生成报告默认生命周期

我尝试在测试阶段包含surefire-reports插件,如下所示,但不起作用

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <phase>test</phase>
                        <goals>
                            <goal>report-only</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

【问题讨论】:

  • 我检查了这个插件的使用页面,它指出 - >“当调用 mvn 站点时,报告将自动包含在项目报告菜单中”或者我需要使用 mvn surefire-report:report但我找不到任何关于 mvn clean install 生成报告的地方,据我了解,站点阶段不是 maven 默认生命周期的一部分。
  • 但是如果你愿意,你可以将插件绑定到不同的阶段
  • 您是否考虑过转换 maven-surefire-plugin 生成的 XML 报告?您可以在它们制作完成后立即执行此操作。例如,在准备包阶段。
  • @khmarbaise 更新了我尝试绑定到测试阶段但对我不起作用的问题

标签: maven maven-surefire-plugin


【解决方案1】:

如果您需要maven-surefire-report-plugin 生成的报告,我认为除了执行mvn site 之外别无他法,因为报告仅在构建生命周期的site 阶段执行。

相反,如果您只需要 HTML 可读的报告,我建议您这样做:

  • 利用由 target/surefire-reports 目录中的maven-surefire-plugin 生成的 XML 文件。
  • 编写您自己的转换表 (XSL) 以将它们转换为所需的 HTML 格式。
  • 在 pom 中,通过xml-maven-plugin 设置下一阶段的转换(例如prepare-package)。

如果你把 XSL 放在父项目中,并在父 pom 中设置这个转换,那么所有子模块项目都应该继承它并在相应的构建过程中生成 HTML 报告。

最后:如何浏览父项目的子 HTML 报告?嗯...我会说编写一个 Ant 脚本来浏览所有子模块并列出 HTML 文件并用它们生成一个 HTML 索引。该脚本只能从父项目执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 2016-08-02
    • 2013-05-28
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多