我已经写了使用JUnit现在我想添加JaCoCo在我的构建工具,移动3.2.1.I是新来的Maven一个单元测试用例。虽然增加了,我不得不怀疑,我想将它添加在依赖或插件?有两种可供选择,这样是以下
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.2-SNAPSHOT</version>
</plugin>
<dependency>
<groupId>org.codehaus.sonar.plugins</groupId>
<artifactId>sonar-jacoco-plugin</artifactId>
<version>3.2.1</version>
</dependency>
我希望将其追加的依赖关系是不够的插件?
请任何机构澄清
你需要添加类似下面你<build><plugins>
:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.1.201405082137</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>default-check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<rules>
<rule>
<element>BUNDLE</element>
<limits>
<limit>
<counter>COMPLEXITY</counter>
<value>COVEREDRATIO</value>
<minimum>0.20</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
这应该生成在target/site/jacoco
覆盖报告,当你用即mvn clean install site
建设项目
注意:在我的例子插件配置的COVEREDRATIO
限制是非常低的,你可能需要设置像80左右的较高值。我们的想法是让若覆盖率低于该限制构建失败。
JaCoCo Java Code Coverage Library JaCoCo是Java,已通过基于经验的EclEmma团队创建了一个免费的代码覆盖率库利用和整合现有库多年的经验教训。 Example
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.9</version>
<configuration>
<skip>false</skip>
<check/>
<rules>
<rule>
<element>CLASS</element>
<excludes>
<exclude>*Test</exclude>
</excludes>
<limits>
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>0.50</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/jacoco</outputDirectory>
</configuration>
</execution>
<execution>
<id>check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<check>
<instructionRatio>100</instructionRatio>
<branchRatio>95</branchRatio>
<lineRatio>90</lineRatio>
<methodRatio>90</methodRatio>
<classRatio>90</classRatio>
</check>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
GitHub的仓库qazxsw POI
下面是一个完整POM,这将帮助你:
Maven Release Plugin
该报告将在此位置:/target/site/jacoco/index.html
而看到此位置为所有目标及其配置PARAMS:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>dummyJar</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>dummyJar</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.1.201405082137</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>