python
runtime_error
ai_generated
true
断言错误:test_b 失败,因为 test_a 未先运行
AssertionError: test_b failed because test_a did not run first
ID: python/unittest-test-order-dependency
80%修复率
87%置信度
0证据数
2024-02-14首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 3.9 | active | — | — | — |
| 3.10 | active | — | — | — |
根因分析
测试之间存在隐式依赖,但 unittest 默认按字母顺序运行,未按预期顺序执行。
English
测试之间存在隐式依赖,但 unittest 默认按字母顺序运行,未按预期顺序执行。
解决方案
-
90% 成功率
在 setUpClass 中创建共享资源,每个测试独立使用,避免依赖。
-
85% 成功率
安装 pytest-dependency 并标记 `@pytest.mark.dependency(depends=['test_a'])`。
无效尝试
常见但无效的做法:
-
60% 失败
依赖顺序脆弱,且重命名可能破坏其他引用。
-
70% 失败
全局状态在测试间泄漏,导致不可预测的结果。