Python面试题更新 2026-08-05

在使用 pytest 进行软件测试时,如果某些测试用例上传失败,应当采用哪种方法或命令来重新运行这些失败的测试用例?

测试技术原理问题排查pytestPython

考察说明

考查对 pytest 框架中 rerun 失败测试用例机制的掌握情况。

回答思路

  1. 【回答框架 1】pytest 支持通过 --lf(--last-failed)选项只运行上次失败的用例,该选项会在本地缓存上次的失败结果,执行 pytest --lf 即可重跑失败用例。
  2. 【回答框架 2】若需要忽略上次运行结果,强制重跑所有用例,可使用 --ff(--failed-first)选项,该选项会先运行上次失败的用例,再运行其余用例。
  3. 【回答框架 3】对于重试机制,pytest 需要借助第三方插件 pytest-rerunfailures,通过 --reruns N 参数指定失败用例重试次数,并可配合 --reruns-delay 设置重试间隔。
  4. 【回答框架 4】若希望在上传场景下筛选特定失败用例,可以结合 -k 表达式或节点 ID(如 test_module.py::test_func)精确指定用例进行重跑。
  5. 【关键点 1】pytest --lf 只重跑上次失败的用例。
  6. 【关键点 2】pytest --ff 先跑失败用例再跑其余用例。
  7. 【关键点 3】pytest-rerunfailures 插件支持 --reruns N 重试。
  8. 【关键点 4】可通过 -k 或节点 ID 精确重跑指定用例。
  9. 【易错点 1】--lf 依赖缓存,若运行目录变化或缓存被清空则失效。
  10. 【易错点 2】重试次数过多可能掩盖真实失败原因,需平衡。
  11. 【易错点 3】插件需额外安装,且与部分 pytest 版本可能存在兼容性问题。