Pytest 常见问题及其解决方案

常见问题及解决方案

1. 测试通过了,但覆盖率不达标

现象:

虽然所有测试都通过了,但覆盖率报告显示某些代码没有被覆盖。

解决方案:

  • 检查覆盖率配置:确保 .coveragercpytest.ini 中正确设置了要分析的源代码路径。
  • 使用标记(markers)排除测试文件本身:避免测试代码也被计入覆盖率统计。
[run]
source = src
omit =*/tests/**/test_*.py
  • 增加更多边界条件测试:特别是异常处理、输入验证等容易遗漏的地方。

2. 测试运行慢,影响开发效率

现象:

每次跑测试都要等很久,严重影响开发节奏。

解决方案:

  • 使用 --ff 参数:只重新运行上次失败的测试,快速反馈。
pytest --ff
  • 并行运行测试:安装 pytest-xdist 插件,并行执行多个测试用例。
pip install pytest-xdist
pytest -n auto
  • 优化测试数据准备:使用 @pytest.fixture(scope="module") 减少重复初始化。
@pytest.fixture(scope="module")
def setup_data():# 只初始化一次yield data

3. 测试依赖外部服务,导致不稳定

现象:

测试依赖数据库、API 等外部服务,导致测试偶尔失败。

解决方案:

  • 使用 unittest.mock 模拟外部服务:隔离依赖,确保测试稳定。
from unittest.mock import patch@patch("my_module.external_service_call")

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

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

相关文章

直击3D内容创作痛点-火山引擎多媒体实验室首次主持SIGGRAPH Workshop,用前沿技术降低沉浸式内容生成门槛

当3D、VR技术在游戏、教育、医疗、文化领域遍地开花,“内容短缺”却成了制约行业爆发的关键瓶颈——传统3D/4D创作不仅耗时耗力、依赖专业技能,还难以适配消费级设备,让许多创作者望而却步。近日,由火山引擎多媒体实验室联合领域顶…

华为基本命令

我们使用的是华为官方的模拟器eNSP 一、华为设备的模式 华为的设备有两种模式: 用户视图和系统视图 用户视图只能读取,或者进行一些基础查询 系统视图能对设备和接口进行一些配置管理,和一些高级操作 在“用户视图”下使用system-view系统可…

2025.9.14英语红宝书【必背16-20】

单词组合 中文速记句子 英文句子 confine, misery, necessitate, negotiate, preach, precaution, precision, stretch 病人被 confine(限制) 在床上,感受 misery(痛苦),情况 necessitate(需要) 医生 negotiate(商讨),牧师 preach(布道) 并提醒 precaution(预防)…

HUST-STAR电控组视觉任务

视觉任务 注意:视觉部分建议采用 python 完成,下面教程也大多针对 python。其原因在于 python 配置相应环境更为轻松,且内置库较为丰富,属于初学者友好类型。没接触过 python 也不必担心,它的大体逻辑与 C 相近&#…

压缩和归档 文件传输

压缩和归档压缩:4G----1.5Gbzip2-bunzip2 gzip-gunzip xz-unxzgzip 要压缩的文件原来的文件就会被删除 (压缩和解压缩)会生成一个 aaa.gz 的文件归档: 4G----4G 打包tarc 创建归档文件 v 看到创建的详细过程 f 文件类型 t 不展开归档文件&…

深入探索 C++ 元组:从基础到高级应用

在现代 C 编程中,元组(std::tuple)是一个强大且灵活的容器,能够存储和操作多个不同类型的数据。它在标准库中扮演着重要角色,并在实际开发中提供了诸多便利。本文将全面探讨 C 元组的各个方面,从基础用法到…

Excel批量处理一列数据---分列功能

0 Preface/Foreword当有多行数据需要处理时,为了减少手动操作,可以EXCEL数据分列功能可以提高效率。1 数据分列1.1 数据分类步骤如下:选中需要处理的一列数据;选择菜单栏中的“数据”;选择分列按照需求设置即可1.2 查找…

HTTPS + 域名 + 双向证书认证(下)

文章目录1. .p12文件1.1 主要特点1.2 常见用途1.3 常见操作1.4 与其他格式的区别1.5 与公钥的区别和联系1.6 安全性注意事项2. Nginx 配置2.1 location指令2.2 alias 与 root 指令的区别3 双向认证配置3.1 创建根证书3.1.1 生成根CA的私钥3.1.2 生成请求证书3.1.3 生成自签署CA…

嵌入式 - ARM3

一、arm启动C语言1. 配置异常向量表2. 实现了软件中断的部分注:ldmfd sp!, {r0-r12, lr} ldmfd sp!, {r0-r12, pc}^ bx lr 左半部分:繁琐易理解的返回方式:先弹出所有通用寄存器和lr &…

如何通过标签和分类提升知识复用效率

通过标签和分类提升知识复用效率,其核心在于构建一个结构化与灵活性兼备的知识组织体系。这需要将分类的“确定性”与标签的“多维性”进行有效结合,为知识的存储与检索建立清晰的“骨架”和丰富的“神经网络”。具体实践中,要求我们进行顶层…

ZYNQ PS读写PL BRAM

一、实验室任务 本章的实验任务是 PS 将数据写入BRAM,然后从 BRAM 中读出数据,并通过串口打印出来;与此同时,PL 从通过自定义ip核从BRAM中同样读出数据,并通过ILA 来观察读出的数据与串口打印的数据是否一致。这里是通…

LinuxC++项目开发日志——高并发内存池(5-page cache框架开发)

PageCachepage cache 设计逻辑一、PageCache 的核心定位:理解它与 CentralCache 的本质区别二、PageCache 的内存分配流程:从 “精确匹配” 到 “拆分适配”三、PageCache 的内存释放流程:合并小 Span,解决内存碎片问题page cache…

Matplotlib:绘制你的第一张折线图与散点图

Matplotlib入门:绘制你的第一张折线图与散点图导语 欢迎来到 Matplotlib 的世界!对于任何使用 Python 进行数据分析或机器学习的人来说,数据可视化都是一项至关重要的技能。Matplotlib 是 Python 中最流行、最基础的可视化库,它功…

MySQL保姆级安装教程

MySQL 安装详细文档,适用于 Windows、macOS 和 Linux 系统,包含了从下载到验证安装的完整步骤: 一、Windows 系统安装 MySQL 1. 下载 MySQL 安装包 访问 MySQL 官方下载页:https://dev.mysql.com/downloads/installer/选择 “MySQ…

重塑你的大脑:从理解突触到掌控人生

重塑你的大脑:从理解突触到掌控人生你是否曾对自己的某些行为感到无力?明知应该早睡,却总忍不住刷手机;下定决心要锻炼,却常常半途而废。这些困扰我们的习惯,并非简单的意志力问题,其根源深深植…

《C++进阶之STL》【哈希表】

【哈希表】目录前言------------概念介绍------------1. 什么是哈希?------------核心术语------------一、哈希函数1. 哈希函数的核心特点是什么?2. 哈希函数的设计目标是什么?3. 常见的哈希函数有哪些?直接定址法除法散列法乘法…

机器学习-模型验证

验证泛化误差 在一个数据集上估计误差,数据集只能使用一次验证数据集:可以被使用多次 基本是训练数据集中的一部分 当使用“test”时,大多数时候指的是验证数据集 生成验证数据集方法 1、数据随机分入训练集或验证集 总是随机选n%的数据作为验…

Qt中自定义控件的三种实现方式

Qt中自定义控件的三种实现方式 在 Qt 应用开发中,标准控件往往无法满足所有需求。自定义控件允许开发者创建具有特定功能和外观的控件,提高代码复用性和界面一致性。Qt 提供了多种方式来开发自定义控件,从简单的组合现有控件到完全自定义绘制…

少儿舞蹈小程序(14)在线预约

目录1 创建数据模型2 搭建预约按钮3 搭建表单4 搭建管理功能整体效果总结目前我们的首页已经开发完毕了,包含轮播图、机构介绍、校区展示、作品与活动展示功能。家长在小程序了解了机构的基本情况之后,下一步就是参加试听,在线下真实体验一下…

TDengine 数据写入详细用户手册

TDengine 数据写入用户手册 概述 TDengine 提供了多种灵活的数据写入方式,以满足不同应用场景的需求。本手册将以智能电表场景为例,向初学者详细介绍各种数据写入方法的使用。 智能电表场景设定 假设我们需要为智能电表系统建立数据库: …