您的位置:首页 > 编程语言

JaCoCo+Maven+Jenkins自动执行单元测试并生成代码覆盖率报告

2017-10-17 20:48 621 查看
1.先准备好pom.xml文件

这里需要两个插件,一个是maven-surefire-plugin,一个是jacoco-maven-plugin

maven-surefire-plugin:用于mvn test的执行

在pom.xml中的<build><plugins>中添加:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>false</skipTests>
</configuration>

</plugin>

PS:groupId,artifactId,version这些可以到http://search.maven.org里面查最新的

jacoco-maven-plugin:用于生成代码覆盖率报告

在pom.xml中添加:

<plugin>

     <groupId>org.jacoco</groupId>

     <artifactId>jacoco-maven-plugin</artifactId>

     <version>0.7.9</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>
<!-- implementation is needed only for Maven 2 -->
<rule implementation="org.jacoco.maven.RuleConfiguration">
<element>BUNDLE</element>
<limits>
<!-- implementation is needed only for Maven 2 -->
<limit implementation="org.jacoco.report.check.Limit">
<counter>COMPLEXITY</counter>
<value>COVEREDRATIO</value>
<minimum>0.60</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>

</plugin>

rule标签内容在maven 3里面不需要,如果是maven 2才需要

PS:上面的例子可以在官网找到,各个参数的意思可以慢慢啃官网文档:http://www.eclemma.org/jacoco/trunk/doc/maven.html,例如配置了report就相当于在命令行执行 mvn org.jacoco:jacoco-maven-plugin:0.7.9-SNAPSHOT:report

,org.jacoco:jacoco-maven-plugin:0.7.10-SNAPSHOT:report这一串是全称,可以在Goals章节里查看

2.在jenkins里创建一个maven项目,配置代码管理信息,接着构建就可以了,因为所有步骤都写到pom.xml里面了

  <goal>prepare-agent</goal>这个就相当于插桩,发生在default生命周期的initialize阶段

  <goal>report</goal>这个就是生成代码覆盖率报告,发生在default生命周期的verify阶段

   jacoco.exec默认生成在target下面,报告默认生成在target下的site里面

   而单元测试当然就是在default生命周期的test阶段了

Maven的生命周期可以参考:http://blog.csdn.net/limm33/article/details/53142118
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: