Pytest 测试发现机制详解:自动识别测试函数与模块
概述
在编写自动化测试时,如何让 Pytest 自动找到你的测试代码 是一个非常基础但重要的问题。Pytest 通过其强大的 测试发现(Test Discovery)机制,能够自动扫描项目目录、识别测试模块和测试函数,从而大大简化了测试流程。
本文将为你详细讲解 Pytest 的测试发现机制,包括其基本原理、常见命名规则、自定义配置方式,并结合实操示例帮助你更好地理解和使用它。
什么是测试发现?
测试发现(Test Discovery) 是指 Pytest 在执行 pytest
命令时,会根据一定的规则自动查找并运行所有符合条件的测试模块和测试函数的过程。
这种“约定优于配置”的设计使得开发者无需手动注册测试用例,极大地提高了测试效率和可维护性。
测试发现的基本原理
Pytest 会从当前工作目录或指定路径开始递归搜索以下内容:
匹配测试模块(文件)
- 文件名以
test_
开头 或 以_test
结尾。 - 示例:
test_sample.py
、sample_test.py
匹配测试函数
- 函数名以
test_
开头。 - 示例:
def test_add():
匹配测试类
- 类名以
Test
开头(且不带__init__
方法)。 - 示例:
class TestMultiplyFunction:
匹配测试方法
- 方法名以
test_
开头。 - 示例:
d