python
runtime_error
ai_generated
true
Failed: 来自 pytest-timeout 的超时(>30.0s)。
Failed: Timeout (>30.0s) from pytest-timeout.
ID: python/pytest-timeout-test-hangs
80%修复率
85%置信度
0证据数
2026-02-14首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 2.x | active | — | — | — |
根因分析
测试在 I/O(网络、子进程、锁)上阻塞时间超过配置的超时。pytest-timeout 会终止测试,但底层挂起通常表明缺少 mock 或存在死锁。
English
A test blocks on I/O (network, subprocess, lock) longer than the configured timeout. pytest-timeout kills the test but the underlying hang often indicates a missing mock or a deadlock.
解决方案
-
90% 成功率
Use the thread method to get a Python traceback at timeout: pytest --timeout=30 --timeout-method=thread -s
-
95% 成功率
Mock the blocking dependency (e.g. requests.get) or use a fake server; this usually reveals the missing mock.
无效尝试
常见但无效的做法:
-
70% 失败
Slows the suite and hides the real hang; CI eventually times out at the job level.
-
90% 失败
Hung tests block CI indefinitely, requiring manual cancellation.