【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

运行结果:

相关推荐
FINE!(正在努力!)1 天前
PyTest框架学习
学习·pytest
程序员杰哥2 天前
接口自动化测试之pytest 运行方式及前置后置封装
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
测试老哥2 天前
Pytest+Selenium UI自动化测试实战实例
自动化测试·软件测试·python·selenium·测试工具·ui·pytest
水银嘻嘻2 天前
07 APP 自动化- appium+pytest+allure框架封装
python·appium·自动化·pytest
天才测试猿3 天前
接口自动化测试之pytest接口关联框架封装
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
not coder4 天前
Pytest Fixture 详解
数据库·pytest
not coder4 天前
pytest 常见问题解答 (FAQ)
开发语言·python·pytest
程序员的世界你不懂4 天前
(1)pytest简介和环境准备
pytest
not coder4 天前
Pytest Fixture 是什么?
数据库·oracle·pytest
Tester_孙大壮4 天前
pytest中的元类思想与实战应用
pytest