You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pytest中查看包含fixture的完整测试执行顺序计划

Pytest 查看含fixture的完整执行计划解决方案

现成内置方案

pytest 5.1及更高版本已经原生支持你需要的能力,无需安装任何第三方插件:

  • 使用内置参数--setup-plan即可在不执行任何测试和fixture代码的前提下,输出和实际执行顺序完全一致的流程,包含各层级fixture的setup、测试用例执行顺序,也能对应fixture栈式销毁的teardown逻辑。
  • 如果你需要在执行测试的同时同步查看fixture和测试的执行流程,可以用--setup-show参数,运行时会输出带缩进层级的完整流程。

默认的--setup-plan输出示例:

SETUP    M Fixture1 (module)
  SETUP    C Fixture2 (class)
        SETUP    F Fixture3 (function)
        test_file.py::TestClass1::TestCase1 (fixtures used: Fixture1, Fixture2, Fixture3)
        TEARDOWN F Fixture3
      test_file.py::TestClass1::TestCase2 (fixtures used: Fixture1, Fixture2)
  TEARDOWN C Fixture2
      test_file.py::TestClass2::TestCase3 (fixtures used: Fixture1)
      test_file.py::TestClass2::TestCase4 (fixtures used: Fixture1)
TEARDOWN M Fixture1

和你期望的输出结构几乎一致,仅格式标识略有区别,完全可以满足fixture逻辑校验的需求。

自定义输出格式实现

如果你需要完全匹配你示例的输出格式,可以通过开发轻量pytest钩子插件实现:

  • 用pytest_collection_modifyitems钩子拿到所有收集完成的测试用例列表
  • 调用pytest内置的依赖解析方法,递归获取每个测试用例依赖的所有fixture,按作用域优先级session > module > class > function排序
  • 按栈逻辑合并重复作用域的fixture(同module下的测试共享module级fixture),最后按执行顺序拼接teardown阶段的fixture列表
  • 按你需要的缩进规则格式化输出即可

内容的提问来源于stack exchange,提问作者Radek Liska

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 22:15:00