- 时间依赖:用可注入的时钟替代 sleep 与真实时间
- 随机数据:固定种子;失败时输出可复现信息
- 共享状态:测试间彼此独立,可任意顺序执行
- 外部依赖:网络与第三方用桩(stub)或本地假实现
对已知 flaky 测试:不要用重试掩盖,先标记并立任务修复。
| 标记方式 | CI 平台打 flaky 标签并记录失败率,避免口口相传 |
|---|---|
| 处理顺序 | 先定位不稳定来源,再决定修测试还是修被测代码 |
不稳定的测试会侵蚀信任:评审新增或修改测试时,检查时间依赖、随机数据、共享状态与外部依赖等常见不稳定来源。
| 标记方式 | CI 平台打 flaky 标签并记录失败率,避免口口相传 |
|---|---|
| 处理顺序 | 先定位不稳定来源,再决定修测试还是修被测代码 |