Python - coverage

coverage

overage 是一个用于测量Python程序代码覆盖率的工具。它监视您的程序,注意代码的哪些部分已经执行,然后分析源代码,以确定哪些代码本可以执行,但没有执行。

覆盖率测量通常用于衡量测试的有效性。它可以显示代码的哪些部分正在由测试执行,哪些部分没有。

最新版本是coverage 7.3.2,发布于2023年10月2日。它支持于:

  • Python 版本3.8到3.12。
  • Python 版本3.8到3.10。

参考文章

官网:https://coverage.readthedocs.io/en/latest/config.html

代码说明

目录结构说明

在这里插入图片描述

业务代码

class CalcDemo:def __init__(self, x, y):self.x = xself.y = ydef plus(self):return self.x + self.ydef subtract(self):return self.x - self.ydef multiply(self):return self.x * self.ydef divide(self):return self.x / self.y

测试代码

import unittestfrom src.Demo import CalcDemoclass TestDemo(unittest.TestCase):def test_plus(self):self.assertEquals(CalcDemo(6, 4).plus(), 10)def test_subtract(self):self.assertEquals(CalcDemo(6, 4).subtract(), 2)def test_multiply(self):self.assertEquals(CalcDemo(1, 5).multiply(), 5)

配置文件

[run]
# 是否统计条件语句的分支覆盖情况。if 条件语句中的判断通常有 True 和 False 两种情况,设置 branch = True 后,Coverage 会测量这两种情况是否都被测试到。
branch = True
# 指定需统计的源代码目录,这里设置为当前目录(即项目根目录)。
source = src[report]
# 在生成的统计报告中显示未被测试覆盖到的代码行号。
show_missing = True

执行生成报告文件

import unittest
import coverageif __name__ == "__main__":# 测试目录testPath = ['test', 'test/demo', 'test/system']# 实例化对象cov = coverage.coverage()# 开始分析cov.start()# 创建用例集suite = unittest.TestSuite()for path in testPath:suite.addTest(unittest.defaultTestLoader.discover(path, "*.py", path))unittest.TextTestRunner().run(suite)# 结束分析cov.stop()# 结果保存cov.save()# 命令行模式展示结果cov.report()# 生成HTML覆盖率报告cov.html_report(directory='ResultHtml')

报告结果

在这里插入图片描述

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

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

相关文章

整理了上百个开源中文大语言模型,涵盖模型、应用、数据集、微调、部署、评测

自ChatGPT为代表的大语言模型(Large Language Model, LLM)出现以后,由于其惊人的类通用人工智能(AGI)的能力,掀起了新一轮自然语言处理领域的研究和应用的浪潮。 尤其是以ChatGLM、LLaMA等平民玩家都能跑起…

抖音品牌力不足,如何开通抖音旗舰店?强开旗舰店全攻略来了!

随着直播的兴起,抖音电商在近年来的发展速度可谓是相当迅猛。越来越多的商家开始将重心投入到抖音电商。从开店、搭建直播间,起号,再到日常运营... 然而我们在第一步开店的时候,就遇到了不少麻烦。 1、选择开通抖音旗舰店&#x…

初识Flask

摆上中文版官方文档网站:https://flask.github.net.cn/quickstart.html 开启实验之路~~~~~~~~~~~~~ from flask import Flaskapp Flask(__name__) # 使用修饰器告诉flask触发函数的URL,绑定URL,后面的函数用于返回用户在浏览器上看到的内容…

Spring Cloud + Vue前后端分离-第5章 单表管理功能前后端开发

Spring Cloud Vue前后端分离-第5章 单表管理功能前后端开发 完成单表的增删改查 控台单表增删改查的前后端开发,重点学习前后端数据交互,vue ajax库axios的使用等 通用组件开发:分页、确认框、提示框、等待框等 常用的公共组件:确认框、提示框、等待…

系列九、事务

一、事务 1.1、概述 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或者撤销操作请求,即:这些操作要么同时成功,要么同时失败。 例如: 张三给李四转账1000块钱&…

使用邮件群发平台,轻松实现高效沟通的4大优势!

新媒体带动着众多线上平台的发展,使得流量为企业带来了可观的营收。但是,随着短视频市场的饱和,想要再次获得初始时的流量就变得越发困难。在这个时候,企业不妨将眼光往邮件群发这个传统的营销方式上倾斜,特别是出海、…

多进程间通信学习之共享内存

共享内存:1、在内核中创建共享内存;2、进程1和进程2都能够访问到,通过这段内存空间进行数据传递;3、共享内存是所有进程间通信方式中,效率最高,不需要在内核中往返进行拷贝;4、共享内存的内存空…

prometheus简介

什么是Prometheus Prometheus 是一个开源的服务监控系统和时序数据库,其提供了通用的数据模型和快捷数据采集、存储和查询接口。Prometheus的特点 多维数据模型:由度量名称和键值对标识的时间序列数据 时序数据,是在一段时间内通过重复测量&…

数据结构之---- 动态规划

数据结构之---- 动态规划 什么是动态规划? 动态规划是一个重要的算法范式,它将一个问题分解为一系列更小的子问题,并通过存储子问题的解来避免重复计算,从而大幅提升时间效率。 在本节中,我们从一个经典例题入手&am…

Web5:互联网发展的下一个前沿

最近发现了互联网的下一代发展“Web5”,这激起了我分享我对此的见解的兴趣。自 1993 年互联网诞生以来,它已经发生了很大的变化,为我们带来了大量很酷的应用程序,让我们的生活每天都变得更加美好。我们的想法是让互联网的使用变得…

盛最多水的容器

给定一个长度为 n 的整数列表 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。 说明:你不能倾斜容器。 示例1&…

Python基础01-环境搭建与输入输出

零、文章目录 Python基础01-环境搭建与输入输出 1、Python概述 (1)为什么要学习Python 技术趋势:Python自带明星属性,热度稳居编程语言界前三 简单易学:开发代码少,精确表达需求逻辑;33个关…

什么是Maven?

什么是Maven 1、Maven是依赖管理、项目构建工具。 pom.xml springBoot项目的核心配置文件,pom项目对象模型、Dependency依赖管理模型。 Maven中的GAVP是指: 1、GroupId:当前工程组织id,例如:com.jd.tddl 2、ArtifactI…

IS-IS原理与配置

IS-IS原理与配置 • IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)是ISO (International Organization for Standardization,国际标准化组织)为它的CLNP (ConnectionL…

[ 8 种有效方法] 如何在没有备份的情况下恢复 Android 上永久删除的照片?

我们生命中最重要的时刻,但这样做有缺点,其中之一就是数据丢失的风险。您可能倾向于定期删除无意义的照片,同时保存可爱的照片,从而使您的 Android 设备井井有条。然而,有些人在删除自己珍视的图像时不小心犯了错误。您…

非递归方式遍历二叉树的原理

一、递归遍历代码 // 先序遍历 void PreOrder(BiTNode *T){if (T!NULL){visit(T); // 最简单的visit就是printf(T->data)PreOrder(T->lChild);PreOrder(T->rChild);} }// 中序遍历 void InOrder(BiTNode *T){if (T!NULL){InOrder(T->lchild);visit(T);InOrder(T-…

2312,生成编译命令

compile_commands.json包含各个目录的编译命令,它的生成: cmake: -DCMAKE_EXPORT_COMPILE_COMMANDSON;gn: gn gen . --export-compile-commandsninja ninja -t compdb cxx cc>compile_commands.json生成sphinx文档. 进入doc目录. 然后输入make html,然后等待即可!

Linux---文本搜索命令

1. grep命令的使用 命令说明grep文本搜索 grep命令效果图: 2. grep命令选项的使用 命令选项说明-i忽略大小写-n显示匹配行号-v显示不包含匹配文本的所有行 -i命令选项效果图: -n命令选项效果图: -v命令选项效果图: 3. grep命令结合正则表达式的使用 正则表达式说明^以指…

什么是PHP中的变量作用域?

PHP中的变量作用域(variable scope)指的是变量在代码中可访问的区域或范围。PHP支持多种变量作用域,包括以下几种主要类型: 全局作用域(Global Scope): 在全局作用域中声明的变量可以在脚本的任…