pytest8.x版本 中文使用文档-------32.示例:使用自定义目录收集器
默认情况下,pytest 使用pytest.Package来收集包含 __init__.py 文件的目录,使用 pytest.Dir来收集其他目录。如果你想要自定义目录的收集方式,你可以编写自己的pytest.Directory 收集器,并使用 pytest_collect_directory钩子来连接它。
对于目录清单文件的一个基本示例
假设你想要自定义每个目录的收集方式。以下是一个conftest.py插件的示例,它允许目录包含一个manifest.json文件,该文件定义了该目录的收集方式。在这个示例中,仅支持一个简单的文件列表,但你可以想象添加其他键,如排除项和通配符。
from __future__ import annotations import json import pytest class ManifestDirectory(pytest.Directory): def collect(self): # pytest的标准行为是遍历所有`test_*.py`文件,并对每个文件调用`pytest_collect_file`。 # 这个收集器改为读取`manifest.json`文件,并且仅对其中定义的文件调用`pytest_collect_file`。 manifest_path = self.path / "manifest.json" manifest = json.loads(manifest_path.read_text(encoding="utf-8")) ihook = self.ihook for file in manifest["files"]: yield from ihook.pytest_collect_file( file_path=self.path / file, parent=self ) @pytest.hookimpl
def pytest_collect_directory(path, parent): # 对于包含`manifest.json`文件的目录,使用我们的自定义收集器。 if path.joinpath("manifest.json").is_file(): return ManifestDirectory.from_parent(parent=parent, path=path) # 否则,回退到标准行为。 return None
你可以创建一个 manifest.json 文件和一些测试文件:
{"files": ["test_first.py","test_second.py"]
}
# content of test_first.py
from __future__ import annotationsdef test_1():pass
# content of test_second.py
from __future__ import annotationsdef test_2():pass
# content of test_third.py
from __future__ import annotationsdef test_3():pass
现在你可以执行测试规范了:
customdirectory $ pytest
=========================== test session starts ============================
platform linux -- Python 3.x.y, pytest-8.x.y, pluggy-1.x.y
rootdir: /home/sweet/project/customdirectory
configfile: pytest.ini
collected 2 itemstests/test_first.py . [ 50%]
tests/test_second.py . [100%]============================ 2 passed in 0.12s =============================
请注意,test_three.py 没有被执行,因为它没有在清单中列出。
你可以验证你的自定义收集器是否出现在收集树中:
customdirectory $ pytest --collect-only
=========================== test session starts ============================
platform linux -- Python 3.x.y, pytest-8.x.y, pluggy-1.x.y
rootdir: /home/sweet/project/customdirectory
configfile: pytest.ini
collected 2 items<Dir customdirectory><ManifestDirectory tests><Module test_first.py><Function test_1><Module test_second.py><Function test_2>======================== 2 tests collected in 0.12s ========================
相关文章:
pytest8.x版本 中文使用文档-------32.示例:使用自定义目录收集器
默认情况下,pytest 使用pytest.Package来收集包含 __init__.py 文件的目录,使用 pytest.Dir来收集其他目录。如果你想要自定义目录的收集方式,你可以编写自己的pytest.Directory 收集器,并使用 pytest_collect_directory钩子来连接…...
c语言第七天笔记
作业题: 设计TVM(地铁自动售票机)机软件。 输入站数,计算费用,计费规则,6站2元,7-10站3元,11站以上为4元。 输入钱数,计算找零(找零时优先找回面额大的钞票)࿰…...
软件测试经理工作日常随记【8】-UI自动化_加密接口的传输
软件测试经理工作日常随记【8】-UI自动化_加密接口的传输 工具类 #utils_api.py class RequestUtils:classmethoddef send_request_splicing(cls, dicts, url): # 对应请求的入参及请求的函数Logger.logger_in().info(-----------------{}接口开始执行-----------------.for…...
基于FPGA的出租车计费系统设计---第一版--郝旭帅电子设计团队
欢迎各位朋友关注“郝旭帅电子设计团队”,本篇为各位朋友介绍基于FPGA的出租车计费系统设计—第一版 功能说明: 收费标准(里程):起步价5元,包括三公里;三公里之后,每公里2元&#x…...
商汤联合建工社共同打造“住建领域法规标准知识大模型”
近日,商汤科技与中国建筑出版传媒有限公司(下称“建工社”)共同发布“住建领域法规标准知识大模型”,共同探索新型知识服务模式。大模型聚焦建筑行业,以商汤“日日新SenseNova 5.5”大模型体系为基础,结合海…...
基于STM32的智能交通监控系统教程
目录 引言环境准备智能交通监控系统基础代码实现:实现智能交通监控系统 车辆检测模块交通流量分析模块通信与网络系统实现用户界面与数据可视化应用场景:交通管理与优化常见问题与解决方案收尾与总结 引言 随着城市化进程的加快,交通拥堵问…...
Git和TortoiseGit的安装与使用
文章目录 前言一、Git安装步骤查看版本信息 二、TortoiseGit安装中文语言包TortoiseGit 配置不同语言 Git基本原理介绍及常用指令 GitLab添加TortoiseGIT生成SSH Key 前言 Git 提供了一种有效的方式来管理项目的版本,协作开发,以及跟踪和应用文件的变化…...
改进YOLOv5:加入非对称卷积块ACNet,加强CNN 的内核骨架,包含VOC对比实验
🔥🔥🔥 提升多尺度、不规则目标检测,创新提升 🔥🔥🔥 🔥🔥🔥 捕捉图像特征和处理复杂图像特征 🔥🔥🔥 👉👉👉: 本专栏包含大量的新设计的创新想法,包含详细的代码和说明,具备有效的创新组合,可以有效应用到改进创新当中 👉👉👉: �…...
论文解读(12)-Transfer Learning
这个也是看论文的时候看到的,但是对这方面不是理解,需要对这方面知识点进行一个补充。 参考: 迁移学习概述(Transfer Learning)-CSDN博客 1. 什么是Transfer Learning? Transfer Learning就是迁移学习&…...
力扣高频SQL 50题(基础版)第三十八题
文章目录 力扣高频SQL 50题(基础版)第三十八题1484.按日期分组销售产品题目说明实现过程准备数据实现方式结果截图总结 力扣高频SQL 50题(基础版)第三十八题 1484.按日期分组销售产品 题目说明 表 Activities: ---…...
大模型下的视频理解video understanding
数据集 Learning Video Context as Interleaved Multimodal Sequences Motivation: 针对Narrative videos, like movie clips, TV series, etc.:因为比较复杂 most top-performing video perception models 都是研究那种原子动作or人or物 understandin…...
【网络安全】CR/LF注入+Race Condition绕过MFA
未经许可,不得转载。 文章目录 漏洞1:CR/LF注入前言正文漏洞2:Race Condition绕过MFA前言正文漏洞1:CR/LF注入 前言 ExaHub(此处为虚拟名称)是一个专为 Exa 编程语言的爱好者和专业人士量身定制的平台。Exa 语言以其出色的速度和性能而闻名,广泛应用于科学计算、机器学…...
深度学习入门——卷积神经网络
本章的主题是卷积神经网络(Convolutional Neural Network,CNN)。CNN被用于图像识别、语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以CNN为基础。本章将详细介绍CNN的结构,并用Python实…...
快团团供货大大团长帮卖团长如何线上结算和支付货款?
一、如何支付结算单? 团长在快团团小程序【我的供货商】—【结算单】—【待支付】中,找到需要支付的结算单,点击【去支付】即可。 当有多笔结算单待支付时,团长可筛选供货商和日期找到需要支付的结算单,点击【去批量…...
vite vue3 Webstorm multiple export width the same name “default“
系统格式不一样,导致代码文件格式冲突导致的,解决方法找到对应的文件,将文件类型切换成LF。...
Transformer预测模型及其Python和MATLAB实现
### 一、背景 在自然语言处理(NLP)领域,传统的序列到序列(Seq2Seq)模型大多依赖于循环神经网络(RNN)和长短期记忆(LSTM)网络。这些模型虽然在许多任务中取得了成功&…...
草的渲染理论
Unity引擎提供了基础的terrain工具,可以制作地形,在上面刷树刷草。对于树,Unity是支持带LOD的Prefab,不同距离显示不同细节的模型,效果还不错。对于草,Unity支持两种方式来刷草,一种是Add Grass…...
Redis:十大数据类型
键(key) 常用命令 1. 字符串(String) 1.1 基本命令 set key value 如下:设置kv键值对,存货时长为30秒 get key mset key value [key value ...]mget key [key ...] 同时设置或者获取多个键值对 getrange…...
bugku-web-source
kali中先用dirsearch工具扫描后台目录,然后用wget -r url/.git命令递归下载后,进入txt文件使用git reflog命令然后只用git show查看作者提交flag日志,用git show 一个一个去尝试,很多假的flag git reflog 是一个 Git 命令&#x…...
一键生成视频并批量上传视频抖音、bilibili、腾讯(已打包)
GenerateAndAutoupload Github地址:https://github.com/cmdch2017/GenerateAndAutoupload 如何下载(找到最新的release) https://github.com/cmdch2017/GenerateAndAutoupload/releases/download/v1.0.1/v1.0.1.zip 启动必知道 conf.py …...
农文旅融合实践:六亩半如何以草莓采摘+植物染色激活乌鲁木齐亲子游市场
一、行业背景随着文旅产业复苏和乡村振兴战略深入推进,乌鲁木齐及周边地区的农文旅融合项目迎来新的发展机遇。根据相关行业观察,融合农业采摘与非遗文化体验的"农文旅"模式正成为新趋势,为城市居民提供了差异化的周末游选择。五月…...
ImageTrans插件生态:用Python扩展图片OCR与翻译工作流
1. 项目概述:一个为ImageTrans量身定制的插件生态如果你经常需要处理图像中的文字,比如翻译漫画、本地化游戏截图或者处理带文字的UI设计稿,那你很可能听说过或者用过ImageTrans这款工具。它是一款专注于图片文字识别(OCR…...
【最新版】Windows 环境OpenClaw 本地 AI 智能体搭建指南
OpenClaw(小龙虾)Windows 一键部署保姆级教程|10 分钟搭建数字员工 在开源 AI 智能体快速普及的当下,OpenClaw(小龙虾)凭借本地运行 零代码操控 自动执行任务的能力,收获大量用户关注&#x…...
Claude Code环境变量配置全解析:从入门到精通
1. 项目概述:Claude Code 环境变量配置生成器如果你和我一样,是 Claude Code 的深度用户,那你一定经历过这样的时刻:面对一个复杂的开发任务,想调整一下模型的思考深度(Effort Level)来平衡成本…...
Versal AI Engine加速椭圆曲线密码学计算实践
1. 项目概述:Versal AI Engine加速椭圆曲线密码学计算在当今的数字安全领域,椭圆曲线密码学(ECC)因其高安全性和计算效率成为主流方案。其中,多标量乘法(MSM)作为ECC的核心运算,在零…...
使用Taotoken后模型API调用的延迟与稳定性观测体验分享
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken后模型API调用的延迟与稳定性观测体验分享 作为一名日常需要与多种大模型API打交道的开发者,模型服务的稳…...
公考备考提分真相:从学员视角解析粉笔讲练测评闭环教学体系
引言在公务员考试备考赛道中,无数考生都面临同一个核心困惑:花费时间和金钱报名培训机构,究竟能不能实现有效提分?不少备考者有过备考失利的经历,也踩过传统公考培训的诸多坑。很多传统课程老师讲课条理清晰、内容丰富…...
STM32L4低功耗实战:用RTC内部唤醒定时1秒,让设备续航翻倍(附CubeIDE配置)
STM32L4低功耗实战:RTC唤醒中断与CubeIDE配置全解析 在电池供电的物联网终端设计中,每微安电流都关乎产品寿命。曾有个智能农业项目,原本预计6个月的传感器续航,因未优化低功耗模式,实际仅维持了3周。这促使我们深入研…...
谷歌seo搜索引擎优化教程有吗?只需4步:快速提升关键词前10概率
搜索结果首页占据了超过 94% 的点击流量。如果你的网站排在第二页,那几乎等同于不存在。很多人在寻找 谷歌seo搜索引擎优化教程有吗?只需4步:快速提升关键词前10概率 的答案时,容易被复杂的技术词汇绕晕。提升排名的过程其实是关于…...
告别答辩PPT焦虑:百考通AI如何帮你高效搞定毕业答辩
简洁专业的PPT模板,精准的AI内容生成,在线编辑与一键美化——让毕业答辩的最后一步走得更从容。 又到了一年毕业季,当论文终于定稿,你是否发现自己又面临一座新的大山——毕业答辩PPT?面对几十页的论文文档,…...
