Skip to content

Pytest测试框架结构

Pytest 测试框架结构

简介

Pytest 中的 setup_method函数用于准备测试环境,teardown_method函数用于清理资源。通过定义 setup_method和 teardown_method函数,可以在每个测试用例执行前后执行所需的操作,增加测试的可靠性和复用性。

  • setup_method函数:在 Pytest 中,setup_method函数用于为测试提供准备环境的代码。该函数在每个测试用例运行之前执行一次。通常,setup_method函数被用来初始化测试环境,例如创建数据库连接、加载测试数据等。可以在不同的作用域(函数级别、类级别、模块级别)定义 setup_method函数。

  • teardown_method函数:在 Pytest 中,teardown_method函数用于在测试执行后进行清理工作。该函数在每个测试用例运行完成后执行一次。通常,teardown_method函数用于释放资源,例如关闭数据库连接、删除临时文件等。可以在不同的作用域(函数级别、类级别、模块级别)定义 teardown_method函数。

setup/teardown 函数的各个类型

类型 规则
setup_module/teardown_module 全局模块级
setup_class/teardown_class 类级,只在类中前后运行一次
setup_function/teardown_function 函数级,在类外
setup_method/teardown_method 方法级,类中的每个方法执行前后
setup/teardown 新版本已弃用,忽略

代码示例如下:

# 模块级别(优先最高)
def setup_module():
    print("资源准备:setup module")

def teardown_module():
    print("资源准备:teardown module")

# 函数级别
def setup_function():
    print("资源准备:setup function")

def teardown_function():
    print("资源销毁:teardown function")

# 方法级别
class TestDemo:
    # 执行类 前后分别执行 setup_class teardown_class
    def setup_class(self):
        print("TestDemo setup_class")

    def teardown_class(self):
        print("TestDemo teardown_class")

    # 每个类里面的方法前后分别执行 setup teardown
    def setup_method(self):
        print("TestDemo setup")

    def teardown_method(self):
        print("TestDemo teardown")

总结

  • 掌握 Pytest 测试框架结构。
  • 不同测试框架结构的作用范围是什么。