💻 Pytest源码实现 🌀

基于 Pytest 8.3.4版本

pdf下载

1. 什么是fixture

fixture 是 pytest 中用于管理测试环境的工具。它可以在测试函数执行之前和之后执行一些操作,比如设置和清理环境。fixture 可以用于设置测试数据、配置测试环境、管理测试资源等。

fixture 通常用于以下场景:

  • 设置测试环境
  • 管理测试数据
  • 管理测试资源
  • 管理测试配置

2. fixture 的定义

fixture 的定义通常在 conftest.py 文件中,也可以在测试文件中定义。

2.1 在 conftest.py 中定义

在 conftest.py 文件中定义 fixture 时,可以使用 pytest_fixture_setuppytest_fixture_teardown 钩子函数来设置和清理 fixture。

import pytest

@pytest.fixture(scope="function")
def my_fixture():
    print("Setting up my_fixture")
    yield
    print("Tearing down my_fixture")

2.2 在测试文件中定义

在测试文件中定义 fixture 时,可以使用 pytest.fixture 装饰器来定义 fixture。

import pytest

@pytest.fixture(scope="function")
def my_fixture():
    print("Setting up my_fixture")
    yield
    print("Tearing down my_fixture")