【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

运行结果:

相关推荐
小马哥编程4 天前
【软件测试】自动化测试框架Pytest + Selenium的使用
selenium·测试工具·pytest
明月与玄武6 天前
Pytest多环境切换实战:测试框架配置的最佳实践!
pytest·pytest框架环境切换
<花开花落>15 天前
将Python第三方库转换为真正的 pytest 插件
pytest
春风又。18 天前
接口自动化——初识pytest
python·测试工具·自动化·pytest
南部余额18 天前
playwright解决重复登录问题,通过pytest夹具自动读取storage_state用户状态信息
前端·爬虫·python·ui·pytest·pylawright
小码哥说测试21 天前
接口自动化进阶 —— Pytest全局配置pytest.ini文件详解!
自动化测试·软件测试·测试工具·自动化·pytest·测试工程师
天才测试猿21 天前
Python常用自动化测试框架—Pytest
自动化测试·软件测试·python·功能测试·测试工具·测试用例·pytest
Rhys..22 天前
2、pytest核心功能(进阶用法)
开发语言·python·pytest