测试岗位面试题更新 2026-08-05

在软件测试实践中,pytest 框架里的 fixture 装饰器承担了哪些职责,其默认值又该如何理解?

测试技术原理pytestPython

考察说明

考查对 pytest fixture 核心概念及默认作用域的掌握情况。

回答思路

  1. 【回答框架 1】fixture 是 pytest 中用于提供测试前置条件和资源管理的机制,通过装饰器标记函数,实现测试数据的准备、清理以及共享。
  2. 【回答框架 2】fixture 的默认作用域为 function,即每个测试函数执行前都会调用一次,确保测试隔离性。
  3. 【回答框架 3】fixture 支持依赖注入,测试函数通过参数名引用 fixture,pytest 会根据名称自动匹配并注入返回值。
  4. 【回答框架 4】fixture 还可以通过 yields 实现 teardown 操作,在测试结束后自动执行清理代码,保证资源释放。
  5. 【关键点 1】fixture 装饰器用于标记资源准备函数,默认作用域是 function。
  6. 【关键点 2】fixture 通过参数引用实现依赖注入,返回值供测试使用。
  7. 【关键点 3】利用 yield 可以实现测试后自动清理,也就是 teardown 逻辑。
  8. 【关键点 4】作用域可设置为 module、class、session 以控制资源复用范围。
  9. 【易错点 1】混淆 fixture 作用域,误以为默认是 session,导致测试间数据污染。
  10. 【易错点 2】未使用 yield 或 request.addfinalizer 导致资源无法释放。
  11. 【易错点 3】忽略 fixture 的自动使用参数 autouse,导致部分测试意外执行无关设置。