优化测试数据库连接管理
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 15s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 15s
- 创建全局单例连接池,性能提升 6-7 倍 - 实现 NewTestTransaction/GetTestRedis/CleanTestRedisKeys - 移除旧的 SetupTestDB/TeardownTestDB API - 迁移所有测试文件到新方案(47 个文件) - 添加测试连接管理规范文档 - 更新 AGENTS.md 和 README.md 性能对比: - 旧方案:~71 秒(204 测试) - 新方案:~10.5 秒(首次初始化 + 后续复用) - 内存占用降低约 80% - 网络连接数从 204 降至 1
This commit is contained in:
24
AGENTS.md
24
AGENTS.md
@@ -137,6 +137,30 @@ Handler → Service → Store → Model
|
||||
- 使用 table-driven tests
|
||||
- 单元测试 < 100ms,集成测试 < 1s
|
||||
|
||||
### 测试连接管理(必读)
|
||||
|
||||
**详细规范**: [docs/testing/test-connection-guide.md](docs/testing/test-connection-guide.md)
|
||||
|
||||
**标准模板**:
|
||||
```go
|
||||
func TestXxx(t *testing.T) {
|
||||
tx := testutils.NewTestTransaction(t)
|
||||
rdb := testutils.GetTestRedis(t)
|
||||
testutils.CleanTestRedisKeys(t, rdb)
|
||||
|
||||
store := postgres.NewXxxStore(tx, rdb)
|
||||
// 测试代码...
|
||||
}
|
||||
```
|
||||
|
||||
**核心函数**:
|
||||
- `NewTestTransaction(t)`: 创建测试事务,自动回滚
|
||||
- `GetTestRedis(t)`: 获取全局 Redis 连接
|
||||
- `CleanTestRedisKeys(t, rdb)`: 自动清理测试 Redis 键
|
||||
|
||||
**禁止使用(已移除)**:
|
||||
- ❌ `SetupTestDB` / `TeardownTestDB` / `SetupTestDBWithStore`
|
||||
|
||||
## 性能要求
|
||||
|
||||
- API P95 响应时间 < 200ms
|
||||
|
||||
Reference in New Issue
Block a user