Pytest 命名规则
简介
Pytest 以特定规则识别测试用例,所以测试用例文件、测试类以及类中的方法、测试函数这些命名都必须符合规则,才能被 Pytest 识别到并加入测试运行队列中。
如果不遵循 Pytest 的命名规则会导致 Pytest 识别不到测试用例。
命名规则
类型 | 规则 |
---|---|
文件 | test_ 开头或 _test 结尾 |
类 | Test 开头 |
方法/函数 | test_ 开头 |
注意:测试类中不可以添加
__init__
构造函数。
示例:
# 文件名
# 示例:test_example.py
# 类名
class TestExample:
# 方法名
def test_case1(self):
pass
def test_case2(self):
pass
# 函数名
def test_addition():
pass
def test_subtraction():
pass
命名规则的优点
-
自动发现测试用例:Pytest 的命名规则可以让 Pytest 自动发现测试用例,只需按照规定的命名规则编写测试函数或类,Pytest 能够自动识别并执行这些测试。
-
避免冲突和命名混乱:通过统一的命名规则,可以避免测试用例的命名冲突和混乱。每个测试函数或类都有明确的命名前缀,使其与其他函数或类区分开来,有助于测试代码的可读性和维护性。
-
代码结构清晰:命名规则提供了一种规范的测试代码组织方式。测试函数和类的命名约定使得测试用例的层次结构清晰可见,更易于理解和维护。这对于大型项目或有大量测试代码的项目尤为重要。
-
与其他测试框架兼容:许多其他测试框架也采用类似的命名规则,所以如果之前使用过其他测试框架,转换到 Pytest 会更加容易。可以在保持相同的命名约定的同时,切换到 Pytest 并享受其丰富的功能和优势。
识别规则
-
如果 pytest 命令行有指定目录,则从该目录中开始查找测试用例文件,如果没有指定,则从当前运行目录开始查找文件。注意,该查找是递归查找,子目录中的文件也会被查找到。
-
运行文件时,不会运行目录下的所有文件,只有符合命名规则的文件才会被运行。默认规则是以
test_
开头或者以_test
结尾的 .py 文件。 -
在测试文件中查找 Test 开头的类,以及类中以
test_
开头的方法,查找测试文件中test_
开头的函数。
总结
- Pytest 命名规则。
- Pytest 识别规则。
相关资料
Google:https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/