本篇内容主要介绍:在gradle项目中添加jacoco来了解工程的代码覆盖情况。

自动化的统计代码覆盖情况,有助于将焦点问题可视化,从而决定什么时候采取什么动作进行改进。Jacoco可以方面的添加在测试执结束,进行代码覆盖率的统计。如果我们对代码覆盖率有要求,那么通过Jacoco可以覆盖率的阀值,低于阀值则不允许通过。

本章将从如何在gradle项目添加Jacoco开始。

代码地址:Code

1,创建一个空白的Gradle项目(如果已有项目可以跳过该部分)

通过Intellij IDEA生成一个Gradle项目。build.gradle文件如下。

build.gradle

其中:

test中指明了使用Junit测试。

dependencies中添加了依赖的JUnit5和断言工具AssertJ。

2,在build.gradle中添加Jacoco的配置

添加完成如下:

build.gradle

在build.gralde的文件的底部,新添加了jacoco插件,并指定其版本使用0.8.5(查看其他可选版本),然后指定允许生成html格式的报告,最后指定在测试运行之后来自动生成报告。

在工程根目录下执行如下命令

gcb

运行结束后,会在项目根目录下的 build/reports/jacoco (如下图)生成覆盖率报告文件。

Structure

3, 添加实际代码后,查看报告详情

我们添加一个测试类ParkingLotTest。从完成测试需要的实现代码。

ParkingLotTest.java

ParkingLot.java

Car.java

Ticket.java

ParkFailException.java

代码结构

执行 ./gradlew clean build 生成代码覆盖率报告。

打开报告,我们可以看到统计情况。

package下的覆盖率情况,如下图。

点击package名称,能够查看类的覆盖率情况,如下图。

点击class名称,能够继续查看class中method的覆盖率情况,如下图。

继续点击method名,能够看到详细代码中的覆盖情况,如下图。

总结

结合前面的两个工具(checkstyle、PMD),我们就能够本地即使得到反馈。相比代码推送到pipline中才知道结果,本地的反馈更加快速和及时。开发人员不用每日化时间在那些简单的、重复的代码问题上,留下更多的时间在Code Review来讨论更有价值的技术问题。

扩展阅读:

《00简单3步实现技术提升个人和团队效率》​zhuanlan.zhihu.com

《01实战CheckStyle》​zhuanlan.zhihu.com

《02实战PMD》​zhuanlan.zhihu.com

生成jacoco报告_03实战Jacoco统计代码覆盖相关推荐

  1. searchview 点击后被覆盖_03实战Jacoco统计代码覆盖

    本篇内容主要介绍:在gradle项目中添加jacoco来了解工程的代码覆盖情况. 自动化的统计代码覆盖情况,有助于将焦点问题可视化,从而决定什么时候采取什么动作进行改进.Jacoco可以方面的添加在测 ...

  2. python自动生成ppt报告_实战 | Python自动生成PPT分析报告

    importreportasrpt# 文件I/Odata=rpt.read_data(filename)code=rpt.read_code(filename)rpt.save_data(data,f ...

  3. Python办公自动化|一键生成数据分析报告

    前两天逛知乎的时候看到这样一个提问,Python自动化办公能做那些有趣或者有用的事情? 看了一下这个提问,我想这可能是很多职场人面临的困惑,想把Python用到工作中来提升效率,却不知如何下手?Pyt ...

  4. python接口测试覆盖率统计_从 jacoco 报告数据分析,python 脚本实现增量覆盖率统计...

    jacoco的增量覆盖率报告实现的逻辑和一些个人想法. jacoco报告分析 从jacococli.jar的使用方法可以看到,导出的文件格式有csv,xml,html等多种格式. 进行尝试后,可以看到 ...

  5. 生成jacoco报告_测开技能之如何利用ant jacoco 合并覆盖率报告

    在之前的文章,利用JaCoCo统计接口测试中代码覆盖率  和 ant+Jacoco 统计tomcat远程部署后项目接口自动化测试或者功能测试代码覆盖率  文章中介绍了如何获取测试代码的覆盖率,但是我们 ...

  6. 基于jacoco+ant+tomcat生成代码覆盖率报告

    基于jacoco+ant+tomcat生成代码覆盖率报告 废话少说,直接上干货 1.关于项目代码 2.关于工具及jar包生成 3.环境配置 4.修改配置参数 5.命令行启动项目 6.获取覆盖率报告 最 ...

  7. 生成jacoco报告_jacoco生成的覆盖率文件

    上节介绍了统计覆盖率时使用的xml文件,其中有一段文件如下: <target name="dump"> <jacoco:dump address="${ ...

  8. android+jacoco多模块项目中统计子模块代码覆盖率

    上一次做了单项目的代码覆盖率统计,但是在实际的项目中,都是已模块开发为主. 研究了一下怎么去统计子模块中的代码覆盖率. 整体思路: 1:既然是多模块的代码覆盖率统计,所以子模块必须也要是用jacoco ...

  9. 【高效日程管理】基于iOS快捷指令自动化,这是一个记录长期目标、统计专注时长、记录健康数据(需要智能手环、手表)、并生成每日报告与自我总结的高效日程管理方式

    核心功能: 1.记录专注时长:分为学霸模式和普通模式,又有正计时和倒计时两种方式.学霸模式下禁止离开计时页面,否则算您结束任务或放弃任务.普通模式下可以离开计时页面,但结束后要进行签到.并且在您进行体 ...

最新文章

  1. php 邮编正则,php抓取百度邮编搜索结果,应改如何写正则表达式?
  2. JPA(一):十分钟入门 JPA
  3. @resource和@Autowired区别
  4. VS2010/MFC编程入门之二十(常用控件:静态文本框)
  5. springboot日志写入mysql_44. Spring Boot日志记录SLF4J【从零开始学Spring Boot】
  6. Linux:I/O多路转接之select(有图有代码有真相!!!)
  7. python 类静态属性_如何从Python中的类中引用静态属性?
  8. 微信小程序的出现会给前端开发带来什么
  9. bankbone 模型简单介绍
  10. fiddler网站请求被拦截怎么恢复?
  11. android课程表设计报告,制作课程表教案设计
  12. 激活golang编辑器
  13. linux下xp镜像文件iso下载,Windows XP SP3简体中文专业版[官方MSDN正式原版ISO镜像]
  14. Smart View for Office
  15. rtl8187L驱动在linux2.6.35上的编译
  16. 按键精灵html库,【源码分享】雷电模拟器 - 按键精灵PC - 命令库
  17. 6.2排序式检索 词项频率
  18. 电商运营风向标:数据分析。
  19. 女子打扮时尚穿短裙 被8岁儿子指责像二奶
  20. [项目管理入门系列] 师傅领进门-------项目运作的一般流程(三)

热门文章

  1. 把执行结果转成json对象报错_给Hangfire的webjob增加callback和动态判断返回结果功能设计...
  2. android 按钮顶级效果_Android 中按钮的点击效果
  3. stm32f407 spi3 mosi没有输出_正点原子STM32F407探索者开发板资料连载第56章 USB 读卡器实验
  4. 【笔记 】weex POST请求 body数据服务器获取不到
  5. You don't have permission to access / on this server提示 求解决办法~
  6. JS 继承(类式 与 原型式)
  7. 16 计划稳定性与控制
  8. 关闭linux日志功能后性能测试
  9. 声明式事务java_Spring声明式事务管理源码解读之事务开始
  10. csv去重 python_python去重函数是什么