我有一些单元测试(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网站(没有干净),但我想要更聪明的东西
答案 0 :(得分:0)
有三个内置的构建生命周期:default、clean 和 site。 默认生命周期处理您的项目部署,干净的 生命周期处理项目清理,而站点生命周期处理 创建项目的站点文档。
所以命令应该是:
mvn clean verify site
(除非有特殊要求,否则请始终清洁您的工作区)
答案 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