Skip to content

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

命名规则的优点

  1. 自动发现测试用例:Pytest 的命名规则可以让 Pytest 自动发现测试用例,只需按照规定的命名规则编写测试函数或类,Pytest 能够自动识别并执行这些测试。

  2. 避免冲突和命名混乱:通过统一的命名规则,可以避免测试用例的命名冲突和混乱。每个测试函数或类都有明确的命名前缀,使其与其他函数或类区分开来,有助于测试代码的可读性和维护性。

  3. 代码结构清晰:命名规则提供了一种规范的测试代码组织方式。测试函数和类的命名约定使得测试用例的层次结构清晰可见,更易于理解和维护。这对于大型项目或有大量测试代码的项目尤为重要。

  4. 与其他测试框架兼容:许多其他测试框架也采用类似的命名规则,所以如果之前使用过其他测试框架,转换到 Pytest 会更加容易。可以在保持相同的命名约定的同时,切换到 Pytest 并享受其丰富的功能和优势。


识别规则

  1. 如果 pytest 命令行有指定目录,则从该目录中开始查找测试用例文件,如果没有指定,则从当前运行目录开始查找文件。注意,该查找是递归查找,子目录中的文件也会被查找到。

  2. 运行文件时,不会运行目录下的所有文件,只有符合命名规则的文件才会被运行。默认规则是以 test_ 开头或者以 _test 结尾的 .py 文件。

  3. 在测试文件中查找 Test 开头的类,以及类中以 test_ 开头的方法,查找测试文件中 test_ 开头的函数。


总结

  • Pytest 命名规则。
  • Pytest 识别规则。

相关资料

Google:https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/