如何使用mvn site命令生成集成测试报告

时间:2017-03-27 15:40:57

标签: maven unit-testing integration-testing maven-plugin maven-surefire-plugin

我有一些单元测试(src / test文件夹中的类* Test.java,由Surefire插件执行)和一些其他集成测试(src / it文件夹中的类* IT.java,由Failsafe插件执行):. xml当我运行mvn install时,.txt报告在文件夹target / surfire-reports和target / failsafe-reports中正确生成。

另外我想要html报告:我认为最好的解决方案是使用mvn site,因此也应该生成css。
但现在只执行单元测试,因此只生成目标/冲浪报告,显然生成的唯一html文档是关于单元测试。

下面的POM片段:

<build>
...
   <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      ...
   </plugin>
   <plugin>
      <artifactId>maven-failsafe-plugin</artifactId>
      ...
      <goal>integration-test</goal>
      <goal>verify</goal>
      ...
   </plugin>
   <plugin> 
      // definition of build helper maven plugin for the registration 
      // of the src/it folder
   </plugin>
...
</build>

<reporting>
  <plugins>
     <plugin>
         <groupId>org.maven.maven.plugins</groupId>
         <artifactId>maven-surefire-report-plugin</artifactId>
         <version>2.19.1</version>
     </plugin>
   </plugins>
</reporting>

显然mvn site没有执行集成测试目标,但我该如何解决呢?

PS:一个愚蠢的解决方案是在安装mvn之后运行mvn网站(没有干净),但我想要更聪明的东西

2 个答案:

答案 0 :(得分:0)

<块引用>

有三个内置的构建生命周期:default、clean 和 site。 默认生命周期处理您的项目部署,干净的 生命周期处理项目清理,而站点生命周期处理 创建项目的站点文档。

  • 默认生命周期中,您会找到“验证”步骤,该步骤将运行您的集成测试
  • 网站生命周期中,您将执行网站。

所以命令应该是:

mvn clean verify site

(除非有特殊要求,否则请始终清洁您的工作区)

Maven Build Lifecycle Basics

答案 1 :(得分:0)

在你的 pom 中使用 JaCoCo 插件,只需运行 mvn clean verify 命令。它是开源的,非常容易实现。

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.7.7.201606060606</version>
    <executions>
        <execution>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <execution>
            <id>report</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

将此添加到您的 pom.xml 中。它将在 target/site/jacoco 目录中生成报告。如果您想将它与 SonarQube 集成,设置添加一些参数并运行命令 mvn sonar:sonar 非常容易。更多详情:https://medium.com/backend-habit/generate-codecoverage-report-with-jacoco-and-sonarqube-ed15c4045885