1. 排查 session 级补丁未关闭与 monkeypatch 跨测试污染
测试开发工程师背景
团队在运行全量 pytest 测试套件时,部分单独运行成功的测试用例在批量执行时频繁出现断言失败,怀疑存在全局 mock 污染。
问题
多层 conftest.py 中混合了 session 级 patcher.start() 和 module 级 monkeypatch,人工审查难以理清影响范围。
如何使用
将根目录与子目录的 conftest.py 源码粘贴至输入框,并使用文件标记隔开,勾选“图中显示内建 fixture 节点”进行分析。
# --- file: conftest.py ---
import pytest
from unittest import mock
@pytest.fixture(scope="session")
def patched_auth():
patcher = mock.patch("auth.verify_token", return_value=True)
patcher.start()
return None
# --- file: tests/unit/conftest.py ---
import pytest
@pytest.fixture(scope="module")
def fake_auth(monkeypatch):
monkeypatch.setattr("auth.verify_token", lambda t: True)
return True结果
精准报告 patched_auth 存在 patcher.start() 未调用 .stop() 错误,以及 fake_auth 违规在 module 作用域引用 monkeypatch 的泄漏告警,同时生成依赖图与修复指引。