java代码覆盖工具Jacoco

什么是Jacoco

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集成

安装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

接口测试

本文分享自微信公众号 - 开源优测(DeepTest)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券