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

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

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

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

代码地址:Code

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

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

534d599305f6f1c1993f2bf9f3d5da3f.png
build.gradle

其中:

test中指明了使用Junit测试。

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

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

添加完成如下:

7e2b4cfdd8b99a3fcf4b3d22401c3aae.png
build.gradle

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

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

2fce98da360ba086d29c28e3dc039e74.png
gcb

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

b115e6a29bc794d442554d2ad88a752a.png
Structure

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

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

ParkingLotTest.java

2f43b990ae8c8ade9c5dea89b6af81ac.png

ParkingLot.java

bb830d341ec84860de7a507db1fb5c17.png

Car.java

3479bea9da44959dcca069b37635a02e.png

Ticket.java

013787ea08bcc8c18a9f40ed27a06882.png

ParkFailException.java

7fa3db785718420977f47b57b7998b86.png

代码结构

386acc0826c5cf4dad891704aafafb36.png

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

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

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

970632efab82334e826969ec08f3716e.png

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

f99f898f589e3491b2a627b2b0bff5be.png

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

35cd03a2cc05b1be0e066d8d51caeb82.png

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

d3d45cce7ecec9c867a494ae182c9002.png

总结

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

扩展阅读:

《00简单3步实现技术提升个人和团队效率》​zhuanlan.zhihu.com
056def375b7c153735ca95aac5e0a07c.png
《01实战CheckStyle》​zhuanlan.zhihu.com
5b6d02a3f8b6381233afa025d8904802.png
《02实战PMD》​zhuanlan.zhihu.com
0fa7ab909f424193887a1d52dffedf2a.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑功耗软件_台式电脑配置详解!

近期有许多做设计的朋友问我,怎么配一台工作用的电脑,今天就给大家介绍一下电脑的各个组成部分。电脑核心配置,一般指CPU、主板、显卡三大件,一般笔记本电脑不需要考虑主板,只需考虑CPU和显卡两大件。1.CPU的选择现在的…

docker mysql优势_前端使用docker有什么优势呢?

那么如果使用docker有什么优势呢?你觉得docker没啥用,自然是因为你没遇到这样的场景,所以就算强行上了docker,也会觉得非常别扭。想了想前端用docker好像确实不是非常必要,npm build以后出来一堆静态文件,扔…

ios python3.0编程软件_ios编程软件-7款学习Python编程的iPhone/iPad应用

Python部落组织翻译,禁止转载,欢迎转发 Python是一种极受欢迎的编程语言,无论你是为机器人还是树霉派编码,都可以使用Python.想学习这门语言?这7个APP会对你有帮助: Pythonista 3: 这…

spring定时器突然不执行了_非标自动化设备之PLC定时器的时间和程序扫描周期

扫描周期是PLC本身执行指令时的周转时间。PLC执行指令按梯形图是从左向右,从上到下执行。每执行一遍就顺便扫描一遍所有元件状态并按指令执行相应动作。这个是需要时间吧,把这个时间叫扫描周期。并如此无限循环下去。当然扫描周期越短,PLC性能…

python 中arange函数_浅谈Python中range与Numpy中arange的比较

本文先比较range与arange的异同点,再详细介绍各自的用法,然后列举了几个简单的示例,最后对xrange进行了简单的说明。1. range与arange的比较(1)相同点:A、参数的可选性、默认缺省值是一样的;B、结果均包括开始值&#…

python入门小游戏之跳一跳_从零基础开始,用python手把手教你玩跳一跳小游戏,直接打出高分...

这对于很多人来说,可能是已经过时的游戏,但是对于python入门来说,却是一个非常值得学习的项目。TONOW收集了很多有关python入门的项目案例,包含了相应的教程和源码,哪怕你从未接触编程,也通过这些教程&…

如何反映两条曲线的拟合精度_用水平仪如何检测导轨的直线度?

1、水平仪的原理及用途: 气泡型水平仪的水准管是由玻璃制成,水准管内壁是一个具有一定曲率半径的曲面,管内装有液体,当水平仪发生倾斜时,水准管中气泡就向水平仪升高的一端移动,从而确定水平面的…

mfc mysql 选择删除文件_MFC应用实例:[60]删除指定类型的文件

双击“删除文件”按钮添加响应函数OnDelete(),在响应函数OnDelete()中添加一下代码:void CDeleteCertainFolderFileDlg::OnDelete(){UpdateData(true);CString m_extern;switch (m_radio)//获取要删除文件类型的后缀名{case 0:GetDlgItem(IDC_RADIO1)-&g…

嵌套查询和连接查询的效率_Elasticsearch 7.x Nested 嵌套类型查询 | ES 干货

一、什么是 ES Nested 嵌套Elasticsearch 有很多数据类型,大致如下:基本数据类型: string 类型。ES 7.x 中,string 类型会升级为:text 和 keyword。keyword 可以排序;text 默认分词,不可以排序。…

c++程序设计_基于proteus的51单片机开发实例30-模块化程序设计

1. 基于proteus的51单片机开发实例30-模块化程序设计1.1. 实验目的模块化程序设计不知不觉我们的51单片机开发实例已经进行到第三十篇了,是时候进行一个总结和反思了,总结什么?反思什么呢?我们先从程序结构开始吧。总结在前面的29…

反序列化的时候出现eof exception_FastJson序列化时候出现了$ref?还不赶紧学习下...

最近在使用fastjson时候遇到一个问题,后台的数据转化为json字符串后发送到前端时候出现了$ref字样的东西,后来明白了这是引用,下面详细介绍下。一、一个简单的例子先来上一段代码,运行后打印的结果可能出乎意料,代码如…

阿里云 linux mysql数据库_Linux Mysql数据库安全配置

Linux Mysql数据库安全配置目录:1.修改mysql管理员账号root的密码(2种方法)2.修改mysql管理员账号root3.mysql管理员root账号密码遗忘解决办法(2种方法)4.创建数据库用户(3种方法)5.mysql数据库权限管理本地权限网络权限撤销权限删除用户一、修改mysql管理员账号roo…

快速锁屏电脑快捷键_一学就会的8个电脑快捷键一定要掌握!堪称“高效”神器...

日常工作中,电脑是我们常用的设备,为了提高工作效率常常需要牢记一些电脑快捷键,那么有哪些电脑快捷键值得我们牢记呢?下面分享8个实用的电脑快捷键,关键时刻省时又省力哟!#1 WindowsL 快速锁屏一般用在暂时…

left join 重复数据_Python数据分析整理小节

一、数据读取1、读写数据库数据读取函数:pandas.read_sql_table(table_name, con, schemaNone, index_colNone, coerce_floatTrue, columnsNone)pandas.read_sql_query(sql, con, index_colNone, coerce_floatTrue)pandas.read_sql(sql, con, index_colNone, coerce_floatTrue,…

mysql 两字段相乘_sql统计2列相乘和语句.doc

sql统计2列相乘和语句sql统计2列相乘和语句篇一:sql统计2列相乘和语句最近有网友提出“两数相除求余数 SQL语句怎么实现两列内容”等问题,小小知识站提取了各大知名网站有关“两数相除求余数 SQL语句怎么实现两列内容”的部分信息,请注意&…

win10文件显示后缀名_Win10一开机,内存占用竟高达60%?你可以尝试这样做

说到win10一开机,内存占用竟高达60%,你是怎么处理的呢?深受其害的朋友就此大展身手了,瞅瞅!A:我16G内存,也是开机占用了70%多。百度找了很多方法都是不相关的答案,后来发现了关闭快速…

LSTM(长短期记忆网络)的设计灵感和数学表达式

1、设计灵感 LSTM(长短期记忆网络)的设计灵感来源于传统的人工神经网络在处理序列数据时存在的问题,特别是梯度消失和梯度爆炸的问题。 在传统的RNN(循环神经网络)中,信息在网络中的传递是通过隐状态向量进…

个人博客代码_Jekyll + Github Pages 搭建个人免费博客

今天亲手通过 Jekyll 搭建了一套免费博客,搭建步骤其实超级简单。你不需要购买域名,也不需要购买服务器,就可以轻松拥有你自己的博客。Jekyll 的核心是一个文本转换引擎。它的方便之处在于支持多种文本标记语言:Markdown&#xff…

mysql 命令desc tables_oracle中与mysql中的命令 show databases, show tables, desc table类似的命令集...

mysql> show tables-> ;----------------| Tables_in_test |----------------| sale_report || test_dysql || union_tab_1 || union_tab_2 || v_sale_report |----------------5 rows in set (0.00 sec)Oracle 使用下面的语句实现SQL> SELECT2 tabl…

js计算排名_今天,我们讲一下,快速排名与黑帽SEO

做个有心人(第7篇)在Web3.0时代,想要获得流量,就必须使用广告手段,用什么广告手段,需要切合自身情况来做,比如说:SEO是免费的,而SEM就是付费的。而SEO快速排名是什么鬼?真的快吗?快速排名究竟…