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
这里需要两个插件,一个是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
相关文章推荐
- JaCoCo和Maven的集成方式,在开发者测试阶段自动生成覆盖率报告
- 生成代码覆盖率报告插件 apply plugin: 'jacoco'
- Ant 单元测试及Jacoco覆盖率报告生成并将报告提交sonarqube
- Karma +Jasmine+ require JS进行单元测试并生成测试报告、代码覆盖率报告
- Maven在test阶段执行单元测试并生成报告(xml、txt、html)
- maven工程加入jacoco检测单元测试代码覆盖率
- 在jenkins和sonar中集成jacoco(二)--在jenkins中生成jacoco覆盖率报告
- [转]mybatis-generator 代码自动生成工具(maven方式)
- jenkins + jacoco 单元测试覆盖率
- mybatis generator maven插件自动生成代码
- sonar ant+jacoco 编译测试并出具测试代码覆盖率报告
- Jenkins集成Maven代码覆盖率插件Cobertura
- Maven + Sonar + Jacoco扫描代码覆盖率
- Jenkins构建Android项目持续集成之单元测试及代码覆盖率
- Jenkins构建Android项目持续集成之单元测试及代码覆盖率
- 使用Maven 插件Mybatis Generator自动生成Mybatis数据映射代码
- 用lcov生成diff代码覆盖率报告
- itellij idea中用mybatis-generator-maven-plugin自动生成Mybatis代码
- jenkins+maven+junit构建自动化测试,整合junit xml生成直观的测试报告
- IDEA Maven Mybatis generator 自动生成代码(实例讲解)