默认生命周期中的 maven surefire 报告

标签 maven maven-surefire-plugin

我如何在 maven 的默认生命周期中生成 surefire 报告。我们在 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>

最佳答案

如果您需要 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 索引。此脚本应仅从父项目执行。

关于默认生命周期中的 maven surefire 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39248893/

相关文章:

java - Jars 在 Nexus 中部署了两次

java - 如何参数化 Maven surefire 插件以便我可以选择要运行的 TestNG 套件

java - 单独运行 JUnit 测试*方法*

maven - Maven 父级定义中的相对路径

java - cucumber 测试未并行运行

maven - 使用 Junit 和 Maven 运行测试的交集

java - Surefire 没有接受 Junit 5 测试

java - jaxb 不生成具有基本整数的枚举

java - 我应该将不被视为资源的配置文件放在 maven 项目的路径中的哪个位置

java - Maven - 您是否需要 main 才能将项目用作库?