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

news2024/11/26 10:51:21

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.coloradmin.cn/o/847976.html

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

相关文章

Python入门自学进阶-Web框架——39、redis、rabbitmq、git——2

RabbitMQ的exchange,即交换机有不同的类型: 1.direct Exchange(直接交换机) 匹配路由键,只有完全匹配消息才会被转发 2.Fanout Excange(扇出交换机) 将消息发送至所有的队列 3.Topic Exchange(主题交换机) 将路由按模…

【机器学习 | 决策树】利用数据的潜力:用决策树解锁洞察力

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

山东气象 × 和鲸科技:第一届齐鲁风云气象智能算法挑战赛圆满收官

7 月 20 日,中国气象局印发《人工智能气象应用工作方案(2023 - 2030年)》,旨在加快布局国产人工智能气象应用技术体系建设,推动人工智能技术在气象观测、预报及服务中的深度融合应用,为监测精密、预报精准、…

网络安全 Day30-运维安全项目-堡垒机部署

运维安全项目-堡垒机部署 1. 运维安全项目-架构概述2. 运维安全项目之堡垒机2.1 堡垒机概述2.2 堡垒机选型2.3 环境准备2.4 部署Teleport堡垒机2.4.1 下载与部署2.4.2 启动2.4.3 浏览器访问teleport2.4.4 进行配置2.4.5 安装teleport客户端 2.5 teleport连接服务器 1. 运维安全…

【Windows】Windows开机密码重置

文章目录 前言一、问题描述二、操作步骤2.1 安装DaBaiCai_d14_v6.0_2207_Online.exe2.2 插入U盘2.3 打开大白菜,点击“一键制作USB启动盘”2.4 等待进度条走完2.5 重启电脑,开机按“F12”或者“F8”(具体百度一下,对应品牌电脑开机…

DEVICENET转ETHERCAT网关连接西门子支持ethercat吗

你有没有遇到过生产管理系统中,设备之间的通讯问题?两个不同协议的设备进行通讯,是不是很麻烦?今天,我们为大家介绍一款神奇的产品,能够将不同协议的设备进行连接,让现场的数据交换不再困扰&…

Appium 移动端自动化测试 -- 常用元素操作

点击元素(element) element.click() 输入内容 element.send_keys(‘input_string’) 清空输入框内容 element.clear() 获取元素属性 element.get_property("text_length")element.get_attribute("class") 获取元素的text文本…

MySQL 慢查询探究分析

目录 背景: mysql 整体结构: SQL查询语句执行过程是怎样的: 知道了mysql的整体架构,那么一条查询语句是怎么被执行的呢: 什么是索引: 建立索引越多越好吗:   如何发现慢查询&#xff1…

Appium Android 自动化测试 -- 元素定位

自动化测试元素定位是难点之一,编写脚本时会经常卡在元素定位这里,有时一个元素能捣鼓一天,到最后还是定位不到。 Appium 定位方式和 selenium 一脉相承,selenium 中的定位方式Appium 中都支持,而 Appium 还增加了自己…

每天一道leetcode:剑指 Offer 32 - III. 从上到下打印二叉树 III(中等广度优先遍历)

今日份题目: 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 示例 给定二叉树: [3,9,20,null,null,15,7…

pytorch Stream 多流处理

CUD Stream https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#c-language-extensions 中指出在kenel的调用函数中最后一个可选参数表示该核函数处在哪个流之中。 - 参数Dg用于定义整个grid的维度和尺寸,即一个grid有多少个block。为dim3类型。…

电脑开不了机如何解锁BitLocker硬盘锁

事情从这里说起,不想看直接跳过 早上闲着无聊,闲着没事干,将win11的用户名称改成了含有中文字符的用户名,然后恐怖的事情发生了,蓝屏了… 然后就是蓝屏收集错误信息,重启,蓝屏收集错误信息&…

【软件工程】2.4 建立动态模型

目录 2.4 建立动态模型 2.4.1 活动图 验证密码活动图 转账活动图 存款活动图 取款活动图 2.4.2 顺序图 2.4.3 状态图 ATM类状态图 总行状态图 分行状态图 2.4.4 协作图 总博客: 2.4 建立动态模型 开发交互式系统,动态模型非常重要 步骤&#…

电商运营必备!6步教你做好电商复盘

一、业绩及关键指标 1、总体完成情况:GMV、UV、转化率、客单价、件单价、连带率、UV价值等,达成率如何,数据同比、环比增幅,与大盘对比情况如何。 2、分阶段及日销情况:预热、预售、开门红、日销、大cu高潮期等销售达…

QFileDialog 对话框类

QFileDialog 对话框类 QFileDialog 对话框类是 QDialog 类的子类, 通过这个类可以选择要打开/保存的文件或者目录。关于这个类我们只需要掌握一些静态方法的使用就可以了。 /* 通用参数:- parent: 当前对话框窗口的父对象也就是父窗口- caption: 当前对话框窗口的标题- dir: 当…

Unity游戏源码分享-仿帝国时代游戏Demo-uRTS Toolkit

Unity游戏源码分享-仿帝国时代游戏Demo-uRTS Toolkit 游戏的架构值得参考 项目地址:https://download.csdn.net/download/Highning0007/88189905

医院临床病例管理系统,促进医疗数据的管理

医疗行业的不断发展,临床病例管理系统也逐渐成为医院管理重要的一环,医院临床病例管理系统是一款集医学信息管理、科研分析以及教学为一体的平台,为医生提供更加高效、准确的病例管理方式,提高诊疗质量,为医学科研提供…

‘vue’不是内部或外部命令,也不是可运行的程序或批处理文件的原因及解决方法

今天我在用node.js的时候,结果出现如下错误: C:\Users\xiesj> vue -v vue不是内部或外部命令,也不是可运行的程序或批处理文件。 原因: 1、确定npm是否已正确安装? 2、确定vue以及vue-cli已正确安装?…

亚马逊将与FTC官员会面!为避免反垄断诉讼做最后努力!

据外媒报道,据一位熟知内情的消息人士透露,亚马逊将于下周与美国联邦贸易委员会(FTC)会面,为避免反垄断诉讼做最后努力。这一举动被视作双方在对簿公堂或者达成和解之前最后的仪式性会议。 FTC在前总统唐纳德特朗普执…

智能文件改名,轻松复制文件并删除目标文件夹中的冗余文件

亲爱的用户们,我们常遇到这样的问题——在文件复制到指定文件夹时,目标文件夹中的冗余文件不断堆积,导致文件混乱、占用存储空间的情况?现在,我们为您带来了一种智能解决方案,让文件管理更简单 第一步&…