9

我有一个多模块 Maven 项目。父 pom.xml 只是引用 4 个子项目的公共信息的一种方式。我有很多运行的 JUnit 测试,并且我还使用maven-info-reports-plugin为 Project WebSite 设置了父项目。

我在父项中配置了maven-surefire-report-plugin ,它会在每个子项目中生成具有正确信息的target/site/surefire-report.html文件。

我的问题是当我通过site:run运行我的项目网站时,我在项目网站中看不到任何surefire-report.html文件。显示的是在父目录的目标目录中,它没有定义单元测试。

有没有办法可以配置maven-surefire-report-pluginmaven-info-reports-plugin来聚合子项目生成的surefire报告?

4

3 回答 3

33

详细说明Seph的答案。您可以设置许多 Maven 报告来汇总结果。要使用 surefire-report 插件执行此操作,您需要执行以下操作:

<reporting>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-report-plugin</artifactId>
      <version>2.4.2</version>
      <configuration>
        <aggregate>true</aggregate>
        <!--also set this to link to generated source reports-->
        <linkXRef>true</linkXRef>
      </configuration>
    </plugin>
  </plugins>
</reporting>

请注意附加的 linkXRef 属性,这允许您将交叉引用添加到由jxr 插件生成的源代码的生成 html 版本。jxr 插件也可以设置为聚合,因此两者结合可以让您浏览整个项目结构。

据我所知,maven-info-reports-plugin 不进行聚合。

于 2009-08-14T06:24:26.453 回答
2

你可以加

<aggregate>true</aggregate>

到父 pom.xml 中的 surefire 插件。

于 2009-08-14T00:30:10.700 回答
1

对于命令行

mvn surefire-report:report -Daggregate=true

它可能是 -

mvn clean test -fn surefire-report:report  -Daggregate=true
OR
mvn clean install -fn surefire-report:report  -Daggregate=true

注意: fn-> 无论项目结果如何,都不要让构建失败

在 pom 中添加

<aggregate>true</aggregate>
于 2019-04-17T11:24:31.383 回答