python runtime_error ai_generated true

运行时错误:monkeypatch 已被撤销,无法再次撤销

RuntimeError: monkeypatch already undone, cannot undo again

ID: python/pytest-monkeypatch-undo-error

其他格式: JSON · Markdown 中文 · English
80%修复率
82%置信度
0证据数
2025-09-10首次发现

版本兼容性

版本状态引入弃用备注
7.4.0 active

根因分析

在测试中多次调用 monkeypatch.undo(),或在夹具 teardown 后手动调用。

English

在测试中多次调用 monkeypatch.undo(),或在夹具 teardown 后手动调用。

generic

解决方案

  1. 100% 成功率
    让 pytest 自动撤销,不要在测试中显式调用 monkeypatch.undo()。
  2. 80% 成功率
    如果必须手动,在 finally 中只调用一次 undo。

无效尝试

常见但无效的做法:

  1. 60% 失败

    掩盖了逻辑错误,且可能影响后续测试。

  2. 50% 失败

    pytest 自动管理,无需手动。