Jacoco是一个开源的覆盖率工具。Jacoco可以嵌入到Ant 、Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序。很多第三方的工具提供了对Jacoco的集成,如sonar、Jenkins等。
官网地址:http://www.eclemma.org/jacoco/
Jacoco集成方式
Jacoco团队提供了如下的一些集成工具的支持: Java API http://www.eclemma.org/jacoco/trunk/doc/api/index.html Command Line http://www.eclemma.org/jacoco/trunk/doc/agent.html Apache Ant http://www.eclemma.org/jacoco/trunk/doc/ant.html Apache Maven http://www.eclemma.org/jacoco/trunk/doc/maven.html Eclipse EclDmma Plugin http://www.eclemma.org/
Jacoco下载地址
官方下载地址:https://www.eclemma.org/jacoco/index.html
On-the-fly注入模式
On-the-fly 方式无须入侵应用启动脚本,只需在 JVM 中通过 -javaagent 参数指定 jar 文件启动 Instrumentation 的代理程序,代理程序在通过 Class Loader 装载一个 class 前判断是否需要注入 class 文件,将统计代码插入 class ,测试覆盖率分析就可以在 JVM 执行测试的过程中完成。
其原理如下图所示
安装jacoco插件
Jenkins中构建参数 关键maven参数:
org.jacoco:jacoco-maven-plugin:prepare-agent:命令行引用jacoco-maven-plugin插件,减少对开发源码的依赖。 -Dmaven.test.skip=false:启用代码中的单元测试,开发代码中一般默认是关闭的。 -Dmaven.test.failure.ignore=true:忽略失败的单元测试用例继续执行。
配置jacoco插件 在“Addpost-build action”中选择“Reccord Jacoco coverage report” 配置文件路径:
Path to exec files :代码覆盖率统计文件位置; Path to class directorie:classes文件位置; Path to source directories:源码文件位置; 根据需要填写覆盖率要求;
Jacoco覆盖率报告
在公众号里回复一下关键字获取对应的系列文章
物联网 | appium | 大数据测试 | RobotFramework | Python |
---|---|---|---|---|
自动驾驶 | jmeter | selenium | jenkins | 接口测试 |