enhance(tests): 改进测试用例记录与覆盖率报告
- 在 ApiCase 中添加失败原因记录,提升测试结果的可读性 - 更新 CoverageReport 结构,增加总用例、通过用例和失败用例计数 - 优化 PrintCoverage 方法,支持详细输出未通过接口及其失败原因 - 更新 Swagger 生成逻辑,包含失败原因字段,增强调试信息 - 改进 SQL 错误计数逻辑,确保在测试模式下准确记录 SQL 错误
This commit is contained in:
+40
-10
@@ -774,28 +774,58 @@ func TestMain(m *testing.M) {
|
||||
}
|
||||
```
|
||||
|
||||
**输出示例:**
|
||||
**输出示例(全部通过):**
|
||||
|
||||
```
|
||||
========== API 测试覆盖率报告 ==========
|
||||
总接口: 42 | 已覆盖: 6 | 覆盖率: 14.3%
|
||||
总用例: 16 | 通过: 16 | 未通过: 0 | 通过率: 100.0%
|
||||
|
||||
已覆盖的接口:
|
||||
+ /api/user/login 4 用例 (4 通过, 0 失败) 12ms
|
||||
+ /api/user/info 2 用例 (2 通过, 0 失败) 5ms
|
||||
+ /api/user/token 2 用例 (2 通过, 0 失败) 4ms
|
||||
+ /api/user/create 4 用例 (4 通过, 0 失败) 18ms
|
||||
+ /api/user/forget 2 用例 (2 通过, 0 失败) 6ms
|
||||
+ /api/user/file 2 用例 (2 通过, 0 失败) 9ms
|
||||
---------- 通过的接口 ----------
|
||||
✓ /api/user/login 4 用例 (4 通过, 0 失败) 12ms
|
||||
✓ /api/user/info 2 用例 (2 通过, 0 失败) 5ms
|
||||
✓ /api/user/token 2 用例 (2 通过, 0 失败) 4ms
|
||||
✓ /api/user/create 4 用例 (4 通过, 0 失败) 18ms
|
||||
✓ /api/user/forget 2 用例 (2 通过, 0 失败) 6ms
|
||||
✓ /api/user/file 2 用例 (2 通过, 0 失败) 9ms
|
||||
|
||||
未覆盖的接口:
|
||||
未覆盖的接口: (36 个)
|
||||
- api/goods/list
|
||||
- api/goods/create
|
||||
- api/order/list
|
||||
- ... (共36个未覆盖)
|
||||
- ...
|
||||
========================================
|
||||
```
|
||||
|
||||
**输出示例(有失败):**
|
||||
|
||||
```
|
||||
========== API 测试覆盖率报告 ==========
|
||||
总接口: 42 | 已覆盖: 6 | 覆盖率: 14.3%
|
||||
总用例: 16 | 通过: 14 | 未通过: 2 | 通过率: 87.5%
|
||||
|
||||
---------- 未通过的接口 (1个) ----------
|
||||
✗ /api/order/create 5 用例 (3 通过, 2 失败) 25ms
|
||||
[失败] 正常创建订单 — Verify: order 表未写入订单记录
|
||||
[失败] 库存扣减 — 状态码不匹配: 期望 0, 实际 4
|
||||
|
||||
---------- 通过的接口 ----------
|
||||
✓ /api/user/login 4 用例 (4 通过, 0 失败) 12ms
|
||||
✓ /api/user/info 2 用例 (2 通过, 0 失败) 5ms
|
||||
...
|
||||
|
||||
未覆盖的接口: (36 个)
|
||||
- api/goods/list
|
||||
- ...
|
||||
========================================
|
||||
```
|
||||
|
||||
报告分为四个区域:
|
||||
- **汇总区**:接口覆盖率 + 用例通过率,一目了然
|
||||
- **未通过的接口**:失败接口单独置顶,每个失败用例附带失败原因(状态码不匹配/消息不匹配/响应结构校验失败/Verify 校验失败)
|
||||
- **通过的接口**:正常通过的接口列表
|
||||
- **未覆盖的接口**:尚未编写测试的接口
|
||||
|
||||
### api-spec.json 覆盖率字段说明
|
||||
|
||||
`GenerateSwagger` 生成的每个 `api-spec.json` 文件中,每条 `endpoint` 记录包含以下与测试状态相关的字段:
|
||||
|
||||
Reference in New Issue
Block a user