我如何在 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/