我正在使用maven网站插件和cobertura一起运行单元测试并生成报告。一切都运行正常,但唯一的问题是所有单元测试都运行了两次。
我尝试为forkMode
设置never
为maven-site-plugin
,但即便如此,我也面临同样的问题。
任何帮助都将不胜感激。
我的命令:mvn cobertura:cobertura -Dcobertura.report.format=html
我的pom:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<configuration>
<aggregate>true</aggregate>
</configuration>
<executions>
<execution>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<aggregate>false</aggregate>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
<instrumentation>
<excludes>
<exclude>**/test/**/*.class</exclude>
</excludes>
</instrumentation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<targetJdk>1.6</targetJdk>
<linkXref>true</linkXref>
<sourceEncoding>ISO-8859-1</sourceEncoding>
<format>xml</format>
<aggregate>true</aggregate>
<verbose>true</verbose>
<rulesets>
<ruleset>favorites.xml</ruleset>
</rulesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<aggregate>true</aggregate>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<xmlOutput>true</xmlOutput>
</configuration>
</plugin>
</plugins>
</reporting>
答案 0 :(得分:0)
我认为这是一种正常行为。
您正在使用两个基于相同内容的不同报告:
但是两份报告都不知道彼此,为什么它会运行两次。
[更新]阅读此mailing list后,它表示您应该最好在个人资料中禁用测试(使用skipTests)。
至于你的命令行,它会给出:
mvn cobertura:cobertura -DskipTests -Dcobertura.report.format=html
但请注意,我的项目无法让cobertura工作(遇到“”最终“”最终“”在第106行,第12列。),所以我不知道是否工作
答案 1 :(得分:0)
我最终创建了两个配置文件,一个用于cobertura,另一个用于站点,这将构建findbugs,CPD和PMD分析。不确定这是否是正确的方法,但解决了我的问题。
希望这会对某人有所帮助。
答案 2 :(得分:0)
测试将始终使用cobertura-maven-plugin
运行两次。
如果您需要cobertura报告并希望测试只运行一次,您可以尝试使用qualinsight-mojo-cobertura-core
插件。您可以在项目页面上找到文档:https://github.com/QualInsight/qualinsight-mojo-cobertura。