【Pytest】setup和teardown的四个级别

文章目录

  • 1.setup和teardown简介
  • [2.模块级别的 setup 和 teardown](#2.模块级别的 setup 和 teardown)
  • [3.函数级别的 setup 和 teardown](#3.函数级别的 setup 和 teardown)
  • [4.方法级别的 setup 和 teardown](#4.方法级别的 setup 和 teardown)
  • [5.类级别的 setup 和 teardown](#5.类级别的 setup 和 teardown)

1.setup和teardown简介

在 pytest 中,setup 和 teardown 用于在测试用例执行前后执行一些准备和清理操作。

setup 和 teardown共有四个级别

等级 说明 范围
函数级别 setup_function 和 teardown_function 针对每个测试函数执行前和执行后进行操作。
类级别 setup_class 和 teardown_class 针对每个测试类执行前和执行后进行操作,它们必须是类的静态方法。
方法级别 setup_method 和 teardown_method 针对类中的每个测试方法执行前和执行后进行操作。
模块级别 setup_module 和 teardown_modulesetup_module 和 teardown_module 针对整个测试模块执行前和执行后进行操作。

2.模块级别的 setup 和 teardown

针对整个测试模块执行前和执行后进行操作。

示例:

python 复制代码
def setup_module(module):
    print(f"开始执行测试模块: {module.__name__}")

def teardown_module(module):
    print(f"测试模块 {module.__name__} 执行完毕")

def test_example1():
    print('执行测试用例1')
    assert 1==1

def test_example2():
    print('执行测试用例2')
    assert 2==2

运行结果:

3.函数级别的 setup 和 teardown

针对每个测试函数执行前和执行后进行操作。

示例:

python 复制代码
def setup_function(function):
    print(f"开始执行测试函数: {function.__name__}")

def teardown_function(function):
    print(f"测试函数 {function.__name__} 执行完毕")

def test_example1():
    print('执行测试用例1')
    assert 1==1

def test_example2():
    print('执行测试用例2')
    assert 2==2

运行结果:

4.方法级别的 setup 和 teardown

针对类中的每个测试方法执行前和执行后进行操作。

示例:

python 复制代码
class TestClass:
    def setup_method(self,method):
        print(f"开始执行测试方法: {method.__name__}")

    def teardown_method(self, method):
        print(f"测试方法 {method.__name__} 执行完毕")

    def test_example1(self):
        print('执行测试用例1')
        assert 1 == 1

    def test_example2(self):
        print('执行测试用例2')
        assert 2 == 2

运行结果:

5.类级别的 setup 和 teardown

针对每个测试类执行前和执行后进行操作,它们必须是类的静态方法。

示例:

python 复制代码
class TestClass:
    def setup_class(cls):
        print(f"开始执行测试类: {cls.__name__}")

    def teardown_class(cls):
        print(f"测试类 {cls.__name__} 执行完毕")

    def test_example1(self):
        print('执行测试用例1')
        assert 1 == 1

    def test_example2(self):
        print('执行测试用例2')
        assert 2 == 2

运行结果:

相关推荐
落魄大学生之流水线上谋生计1 天前
pytest 入门与实践:从第一个测试到可维护的测试体系
pytest
念越3 天前
Allure 测试报告保姆级教程:从安装到 pytest 集成与报告生成
pytest·allure
念越3 天前
接口自动化测试从入门到实战:接口用例设计、Requests、Pytest、YAML、JSON Schema 与 Allure 报告
python·测试工具·自动化·json·pytest
霍格沃兹测试学院-小舟畅学7 天前
AI+Swagger:一键生成500条pytest接口用例
人工智能·pytest
把头塞进显示器16 天前
电商平台-测试报告
python·selenium·pytest
昔我往昔21 天前
pytest日志问题排查记录
python·pytest
黄昏恋慕黎明24 天前
博客论坛技术迭代
python·pytest
2601_9620782324 天前
Python接口自动化流程(pytest)
python·pytest·接口自动化·测试框架·断言
杨女士YRJ24 天前
python+pytest+01
python·pytest
2601_9620782325 天前
Python接口自动化框架:pytest
python·pytest·接口自动化·测试框架·restfulapi