Pytest 测试用例生命周期管理-自动注册(conftest.py)

conftest.py 文件简介

在 pytest 中,conftest.py 是一个特殊的配置文件,通常用于定义共享的 fixture、hooks 或其他全局设置,供整个项目中的测试使用。

conftest.py 文件可以帮助你管理项目级别的配置、共享的测试功能、预处理和清理操作,使得多个测试文件能够共享同一组配置或资源,而不需要在每个测试文件中重复定义。

conftest.py ⽂件名是固定的,不可以变化。


conftest.py 的生效规则

  • conftest.py 必须放在项目的根目录下,并且文件名固定不可变化

    python 复制代码
    tests/
    ├── conftest.py   ✅ 作用于当前目录及子目录
    ├── test_a.py
    │
    └── sub_tests/
        ├── test_b.py ✅ 也能用

运行机制

  • 🔹 自动加载 :当运行 pytest 时,pytest 会自动搜索并加载当前目录及其上层目录中的 conftest.py 文件。不需要显式地导入 conftest.py 中定义的 fixtures,它们会自动成为测试文件的一部分。

  • 🔹 作用范围 :conftest.py 中定义的内容具有全局作用。conftest.py 文件会应用于当前目录及其子目录下的所有测试文件。

  • 🔹 目录层级 :pytest 会逐级向上查找 conftest.py 文件。如果某个测试文件位于子目录中,它会加载该子目录下的 conftest.py 文件,并且会继续加载父目录的 conftest.py 文件,直到找到项目根目录下的 conftest.py 。


使用场景

  • 多个测试文件共用同一资源

  • 团队协作

  • 框架级能力扩展

使用步骤

  • 创建 conftest.py 文件:通常放在项目的根目录或一个特定的测试子目录中。
  • 在 conftest.py 文件中定义 fixture 或者 hooks。
  • 在测试用例中直接传入 fixture 名字,不需要在测试文件中导入。

代码示例

在项⽬根目录下创建 conftest.py 文件。
在 conftest.py 文件中定义登录和连接数据库两个 fixture。
在测试用例中直接传入以上两个 fixture 名称。

  • conftest.py

    python 复制代码
    import pytest
    
    @pytest.fixture(scope="class")
    def login():
         # setup 操作
         print("完成登录操作")
         token = "abcd"
         username = 'hogwarts'
         yield token,username # 相当于return
         # teardown 操作
         print("完成登出操作")
    
    @pytest.fixture()
    def connectDB():
         print("连接数据库")
         yield
         print("断开数据库")
  • test_get_product.py

    python 复制代码
    def test_get_product(login, connectDB):
        print("验证获取单品信息")
    • 运行结果
相关推荐
测试界的小码农3 天前
【让 AI 生成的测试用例变成 pytest API 自动化脚本】
人工智能·测试用例·pytest
Da Da 泓8 天前
五子棋 Web 端测试用例报告
前端·网络·websocket·网络协议·测试用例·项目
会开车的鸟哥8 天前
自动创建测试用例与组件测试向导
测试用例·simuinktest
螺丝钉tina9 天前
[Playwright][08] Upload 模块自动化:如何设计真实业务测试用例?
运维·自动化·测试用例
TomEval9 天前
【测AI】第22篇:Agent 系统测试方法 — AI 学会“动手“了
人工智能·python·prompt·aigc·测试用例
车软学堂10 天前
CANoe自动化:跑起第一个测试用例
运维·车载系统·自动化·汽车·测试用例
2601_9679873710 天前
Python在自动化测试中有哪些应用?
python自动化测试·selenium·appium·pytest·性能测试
jiangbqing11 天前
测试功能点,测试用例、测试报告全流程技能直接用
功能测试·测试用例·测试用例 测试报告
自动化测试行业观察11 天前
AI智能测试用例生成技术解析:多源融合+LLM混合生成方案与实践
自动化测试·人工智能·科技·测试用例·智能化测试·ai测试平台·ai智能遍历
TomEval11 天前
【测AI】第20篇:大模型安全测试 —— 越狱攻击与防护
人工智能·python·功能测试·ai·aigc·测试用例·安全性测试