pytest 钩子函数 有哪些

pytest 内置钩子很多,贯穿“启动 → 收集 → 执行 → 报告 → 退出”的整个生命周期。完整清单见 pytest Hooks API Reference

常用钩子可以按阶段理解:

阶段常用钩子作用
启动与配置 pytest_addoption 注册自定义命令行参数
  pytest_configure pytest 初始化配置完成后调用
  pytest_unconfigure pytest 退出前清理配置
  pytest_addhooks 注册自定义钩子规范
测试收集 pytest_ignore_collect 决定是否跳过某个文件或目录
  pytest_collect_file 自定义测试文件收集
  pytest_pycollect_makeitem 自定义 Python 测试对象收集
  pytest_generate_tests 动态生成参数化测试
  pytest_make_parametrize_id 自定义参数化用例 ID
  pytest_collection_modifyitems 收集完后排序、过滤或标记用例
  pytest_collection_finish 所有用例收集完成后调用
测试执行 pytest_runtest_setup 每条用例执行前调用
  pytest_runtest_call 执行测试主体时调用
  pytest_runtest_teardown 每条用例执行后调用
  pytest_runtest_protocol 控制一条用例的完整执行流程
  pytest_runtest_makereport 生成 setup/call/teardown 阶段结果
  pytest_pyfunc_call 控制普通 Python 测试函数的调用
Fixture pytest_fixture_setup fixture 初始化时调用
  pytest_fixture_post_finalizer fixture 清理完成后调用
报告与日志 pytest_runtest_logstart 一条测试开始时调用
  pytest_runtest_logreport 每个测试阶段产生报告时调用
  pytest_runtest_logfinish 一条测试结束时调用
  pytest_report_teststatus 自定义测试状态显示
  pytest_report_header 自定义测试报告头部
  pytest_terminal_summary 自定义终端最终汇总
会话生命周期 pytest_sessionstart 测试会话开始
  pytest_sessionfinish 测试会话结束并可修改退出码
异常与调试 pytest_keyboard_interrupt 用户按 Ctrl+C 时调用
  pytest_internalerror pytest 内部发生错误
  pytest_exception_interact 测试异常进入交互处理时调用
  pytest_enter_pdb 进入 PDB 调试器时调用

 

posted @ 2026-09-09 13:45  苹果芒  阅读(3)  评论(0)    收藏  举报