概述

在编写自动化测试时,如何让 Pytest 自动找到你的测试代码 是一个非常基础但重要的问题。Pytest 通过其强大的 测试发现(Test Discovery)机制,能够自动扫描项目目录、识别测试模块和测试函数,从而大大简化了测试流程。

本文将为你详细讲解 Pytest 的测试发现机制,包括其基本原理、常见命名规则、自定义配置方式,并结合实操示例帮助你更好地理解和使用它。

什么是测试发现?

测试发现(Test Discovery) 是指 Pytest 在执行 pytest 命令时,会根据一定的规则自动查找并运行所有符合条件的测试模块和测试函数的过程。

这种“约定优于配置”的设计使得开发者无需手动注册测试用例,极大地提高了测试效率和可维护性。

测试发现的基本原理

Pytest 会从当前工作目录或指定路径开始递归搜索以下内容:

匹配测试模块(文件)

  • 文件名以 test_ 开头 或 以 _test 结尾。
  • 示例:test_sample.pysample_test.py
    在这里插入图片描述

匹配测试函数

  • 函数名以 test_ 开头。
  • 示例:def test_add():
    在这里插入图片描述

匹配测试类

  • 类名以 Test 开头(且不带 __init__ 方法)。
  • 示例:class TestMultiplyFunction:
    在这里插入图片描述

匹配测试方法

  • 方法名以 test_ 开头。
  • 示例:d

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

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

相关文章

MySQL 时间日期函数

时间日期类型 MySQL中主要支持以下几种时间日期类型: DATE - 日期类型 格式:YYYY-MM-DD范围:1000-01-01 到 9999-12-31示例:2023-05-20 TIME - 时间类型 格式:HH:MM:SS范围:-838:59:59 到 838:59:59示例&…

408第三季part2 - 计算机网络 - 物理层

理解 这里有8个波形,每个波形代表一个马原,一个马原代表多个比特,这里3个比特 求波特率就直接2W 求比特率就要乘log2V 这块记两公式就行,一个下面一个上面 题目 4个相位加4种幅度就是有16种波形 这里无噪声就是奈奎斯特定理 这…

iOS 集成RN Installing glog (0.3.5)报错的解决方案

在集成执行RN bundle exec pod install 命令到Installing glog (0.3.5)时报错,报错信息如下: Installing glog (0.3.5) [!] /bin/bash -c set -e #!/bin/bash # Copyright (c) Facebook, Inc. and its affiliates. # # This source code is licensed under the MIT license …

【进阶篇-消息队列】——MQTT协议如何支持海量的在线IoT设备

目录 一、什么是IoT二、MQTT 和其他消息队列的传输协议有什么不同三、如何选择 MQTT 产品四、MQTT 集群如何支持海量在线的 IoT 设备五、总结本文来源:极客时间vip课程笔记 一、什么是IoT IoT,也就是物联网,物联网这个词儿,它的含义还不那么直观,但你看它的英文:IoT,也就…

Chat Model API

聊天模型API为开发人员提供了将人工智能聊天完成功能集成到应用程序中的能力。它利用预训练的语言模型,如GPT(生成预训练转换器),以自然语言对用户输入生成类似人类的响应。 API通常通过向人工智能模型发送提示或部分对话来工作&…

【黑群晖】自组硬件/旧电脑nas改造(三)——使用Jellyfin创建家庭影音库

一、打开套件中心安装Jellyfin套件 如果找不到Jellyfin套件,需要手动添加三方套件源: 《群晖NAS必学技能:一键解锁三方套件源,PT下载影音播放全搞定!》 二、配置Jellyfin 访问http://群晖IP:8096 进入Jellyfin初始化界…

泰山派编译debian报错 lb config: unrecognized option ‘--debootstrap-options‘

简介 最近在编译泰山派 编译buildroot系统正常,但是编译debian时总是报错说lb 找不到一些参数,如下图所示,应该当前的版本较低 不支持这些参数,我试了很多方法 升级次版本 但是提示的是最新的,最后经过一番搜索 在官方…

跨境证券交易系统合规升级白皮书:全链路微秒风控+开源替代,护航7月程序化交易新规落地

1 行业变革:四重驱动力重塑证券交易系统 当前全球证券行业正处于深刻变革期,跨境金融活动面临前所未有的机遇与挑战。今日央行开展的1310亿元7天期逆回购操作,以及国家外汇管理局向合格境内机构投资者(QDII)新增发放30.8亿美元投资额度等政策…

Node.js核心API(fs篇)

前言:在Node.js生态系统中,文件系统操作是后端开发不可或缺的一部分。fs模块作为Node.js核心API的重要组成部分,提供了与文件系统交互的能力,涵盖了从基础的文件读写到复杂的目录操作等功能。现代JavaScript开发中,处理…

HarmonyOS学习2---Stage模型

1、工程目录结构 1.1、入口 UIAbility 1.2、入口page 1.3、配置文件 1、配置文件 1)应用级配置文件 --- app.json5 2)模块级配置文件 --- module.json5 3、oh-package.json5 4、资源文件 1)element目录 2)media目录 3&#xff09…

【软件工程】软件复刻项目的完整流程指南

软件复刻项目的完整流程指南 第一章、概述 一、前期准备:明确目标与合规性 1. 法律风险评估 版权排查:确认目标软件的 UI 设计、代码、商标是否受保护(如界面元素、核心算法是否申请专利)。规避侵权:避免直接复制 …

浅谈Python 中的当前工作目录与脚本目录

Python 中的 os.path.exists() 和 __file__ 使用陷阱:工作目录 ≠ 脚本目录 在使用 os.path.exists() 或 open() 等函数操作文件路径时,笔者常常忽略一个关键概念:当前运行目录(Current Working Directory, CWD)并不等…

iOS检测并阻止骚扰电话的方法

检测并阻止骚扰电话 你可以在 iPhone 上使用“将未知来电者设置为静音”或第三方 App 来阻止骚扰电话。 打开“将未知来电者设置为静音” 在 iOS 13 及更高版本中,你可以打开“静音未知来电”,以免接到陌生人的来电。这一功能可以阻止那些你从未联系过…

TensorFlow源码深度阅读指南

TensorFlow源码深度阅读指南 本文基于《TensorFlow内核剖析》附录A的代码阅读方法论,结合实例解析核心源码阅读技巧(含关键图示):一、源码阅读的四个维度 1. 分层切入策略(图A-1) #mermaid-svg-ooLMzaWU5ky…

设计模式-责任链模式、策略模式

责任链模式 Chain of Responsibility(职责链)—对象行为型模式定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象…

泛微e-cology remarkOperate远程命令执行漏洞

【高危】泛微e-cology remarkOperate远程命令执行漏洞 漏洞描述 泛微e-cology是泛微公司开发的协同管理应用平台。 受影响版本中,接口 /api/workflow/reqform/remarkOperate 存在 SQL 注入漏洞,multipart 类型参数 requestid 直接拼接进 SQL 语句&…

Redis常用操作

1:redis常用操作: package com.shunaier.hhhh.biz.utils;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.shunaier.hhhh.common.enums.SystemErrorEnum; import com.shunaier.hhhh.common.exception.SNEB…

mybatis-plus-01-环境初始化及简单应用

文章目录 【README】【1】springboot集成mybatis-plus配置【1.1】目录结构【相关说明】 【1.2】代码示例【pom.xml】【application.properties】【MybatisPlusNoteController】【UserAppService】【UserMapper】【UserPO】【建表语句】 【2】演示 【README】 本文代码参见&…

VR小鼠解剖虚拟仿真:开启生命科学教育新视野​

VR 小鼠解剖虚拟仿真,是一项将虚拟现实(VR)技术深度融入小鼠解剖学习与研究过程的创新应用,即 VR 小鼠解剖虚拟仿真。其核心原理在于,借助 VR 技术所构建的高度逼真的虚拟环境,突破了传统小鼠解剖在时间、空间以及实体操作上的诸多…

计算机网络(网页显示过程,TCP三次握手,HTTP1.0,1.1,2.0,3.0,JWT cookie)

前言 最近一直在后端开发的面经🙌,里面涉及到了好多计算机网络的知识😁,在这里以问题的形式写一个学习笔记(其中参考了: JavaGuide 和 小林coding 这两个很好的学习网站😘) 1.当键入网址后&am…