查看单元测试用例覆盖率新姿势:IDEA 集成 JaCoCo

1、什么是 IDEA

IDEA 全称 IntelliJ IDEA,是 Java 编程语言开发的集成环境。IntelliJ 在业界被公认为最好的 Java 开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE 支持、各类版本工具(git、SVN 等)、JUnit、CVS 整合、代码分析、 创新的 GUI 设计等方面的功能可以说是超常的。

2、什么是 JaCoCo

JaCoCo 是一个免费、开源 Java 代码覆盖率工具。

3、IDEA 为什么要集成 JaCoCo

方便查看单元测试用例覆盖率。

如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386      

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337

4、集成步骤

4.1、被测类

注意:被测类要放在 main 下面,而不是 test 下面

图片

4.2、单元测试用例

注意:单元测试类(CalcTest)必须和被测类(Calc)在同一个包下(com.lemon.testng)

图片

4.3、配置 Code Coverage

图片

选择 Edit Configurations

图片

选择 Code Coverage,再选择 JaCoCo

图片

右键选择 Run with Coverage

图片

自动弹出代码覆盖率界面

4.4、覆盖率报表

报表相对简单,Class 表示类覆盖率,Method 表示方法覆盖率,Line 表示行覆盖率

图片

4.5、代码覆盖情况

单元测试用例主只写了 add 方法,所以 add 方法显示绿色,覆盖状态,sub 方法显示红色,未被覆盖。

图片

新增一个 sub 方法测试用例,再来看结果。

图片

首先 Method 从 1 变成 2,Line 数也增多了。

图片

其次,sub 方法颜色也有变化,if 仍是红色, 但是 else 变成绿色,说明 eles 分支被覆盖。

图片

5、总结

通过上述例子可以看出,通过查看覆盖率,逐步善测试用例,写出的用例至少能保障每个分支都被执行,相比通过需求写用例更能排查出潜在 bug。

需求 ≠代码,不能仅围绕需求写用例,借助 JaCoCo 覆盖率工具编写用例,更符合实际工作需求,更省心省力。

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

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

相关文章

【力扣每日一题】2023.8.8 任意子数组和的绝对值的最大值

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个数组,让我们找出它的绝对值最大的子数组的和。 这边的子数组是要求连续的,让我们找出一个元素之和…

PHPstudy配置伪静态步骤,tp5.1的框架

搜索mod_rewrite.so&#xff0c;然后去掉前面的#&#xff08;即放开注释&#xff09; 2.找到index.php 同级文件.htaccess&#xff08;没有就新建&#xff09; 这些是tp5.1自带的内容&#xff0c;把它注释掉&#xff0c;是错误的内容&#xff0c;添加下面的这段配置 #<If…

paddlenlp:社交网络中多模态虚假媒体内容核查

初赛之环境配置篇 一、背景二、任务三、数据集1、初赛阶段2、评分标准 四、环境操作五、写在最后 一、背景 随着新媒体时代信息媒介的多元化发展&#xff0c;各种内容大量活跃在媒体内中&#xff0c;与此同时各类虚假信息也充斥着社交媒体&#xff0c;影响着公众的判断和决策。…

Spring Boot整合ES的两种方式

使用Spring Data Elasticsearch Starter 在Spring Boot中整合Elasticsearch的方式之一是使用Elasticsearch的官方Spring Data Elasticsearch Starter。该Starter提供了对Elasticsearch的高级集成&#xff0c;简化了配置和管理Elasticsearch客户端。 下面是使用Spring Data E…

Mysql的instr()函数用法详解

最近接手了一个大型老项目&#xff0c;用到的jfinal技术&#xff0c;后端大部分都是拼写的sql&#xff0c;对一些sql函数不太理解的我算是一个挑战&#xff0c;也是一个进步的很大空间。 今天来说下instr这个函数 首先看下我们的表数据 我们先执行&#xff1a; SELECT * fro…

【学习笔记】生成式AI(ChatGPT原理,大型语言模型)

ChatGPT原理剖析 语言模型 文字接龙 ChatGPT在测试阶段是不联网的。 ChatGPT背后的关键技术&#xff1a;预训练&#xff08;Pre-train&#xff09; 又叫自监督式学习&#xff08;Self-supervised Learning&#xff09;&#xff0c;得到的模型叫做基石模型&#xff08;Founda…

重发布选路问题

一、思路 &#xff1b; 1.增加不优选路开销解决选路不佳问题 2.用增加开销的方式使R1 不将ASBR传的R7传给另一台ASBR解决R1、R2、R3、R4pingR7环回环路 二、操作 ------IP地址配置如图 1.ospf及rip的宣告 rip&#xff1a; [r1]rip 1 [r1-rip-1]version 2 [r1-rip-1]netw…

详细介绍golang中.()类型断言的使用方法

文章目录 一、什么是.()用法&#xff1f;二、.()的基本用法三、.()用法的高级应用3.1 nil类型的转换3.2 将函数作为参数传递 四、.()使用中的注意事项五、总结 Golang是一门非常流行的编程语言&#xff0c;在很多领域都有着广泛的应用。在开发过程中&#xff0c;很多时候我们需…

2021年12月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

一、单选题(共25题,每题2分,共50分) 第1题 昨天的温度是5摄氏度,今天降温7摄氏度,今天的温度是多少摄氏度? A:12 B:7 C:2 D:-2 正确的答案是 D:-2。 解析: 根据题目描述,昨天的温度是 5 摄氏度,今天降温了 7 摄氏度。降温意味着温度变低,所以今天的温度…

DLA 神经网络的极限训练方法:gradient checkpointing

gradient checkpointing 一般来说&#xff0c;训练的过程需要保存中间结果&#xff08;不管是GPU还是CPU&#xff09;。前向传播根据输入(bottom_data)计算输出(top_data)&#xff0c;后向传播由top_diff计算bottom_diff&#xff08;如果某个变量打开梯度进行训练的话&#xff…

Android 获取网络连接状态新方法

一. 问题背景 Android12上&#xff0c;有的app模块判断当前网络的类型和连接状态时&#xff0c;还是使用的旧的API&#xff0c;导致返回的结果不准确&#xff0c;影响代码逻辑判断&#xff0c;本篇文章就这一问题&#xff0c;整理一下判断网络类型和连接状态的新方法。 二. 原因…

CC++内存管理与模版初阶

目录 四、C&C内存管理 (一)C/C内存分布 (二)C内存管理方式 1、new/delete操作内置类型 2、new和delete操作自定义类型 (三)operator new与operator delete函数 (四)new和delete的实现原理 1、内置类型 2、自定义类型 (五)定位new表达式(placement-new) (六)八股文 1、n…