Files
vscode-workbench/PLANNING/tasks/D-02-PG并发测试环境.md
T

56 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# D-02 · PG 并发测试环境(激活 4 个 skipped)
| 字段 | 值 |
|---|---|
| 项目 | dealerhub · `Desktop/gj/dealerhub/backend` |
| 优先级 | P1 · M3 |
| 建议模型 | deepseek-v4-flash(主)/ glm-5.3-flash(复核) |
| 依赖 | 无 |
| 预估 | 0.5 天 |
## 一、背景(为什么做)
基线 `460 passed, 4 skipped`——4 个跳过用例全是 PostgreSQL 并发测试,需要 `config.settings.pgtest` 与可用 PG 实例。迭代 5 明确写了"本轮未伪造该环境结果"。**补齐测试矩阵最后一块,把"没验证"变成"已验证"。**
## 二、目标(交付物)
1. `config/settings/pgtest.py`:从环境变量读 PG 连接(或提供默认容器 DSN),并发测试专用。
2. 一条命令可建测试库并跑 4 个用例(附 Docker 命令或已有 PG 说明)。
3. 文档:`backend/docs/pgtest.md`(怎么起 PG、怎么跑、为什么这类测试必须真 PG)。
4. 4 个用例真实跑通(不再是 skip)。
## 三、执行步骤
```text
1. 找到 4 个 skip 用例(grep skip / pytest.mark.skipif)看它们的真实依赖
2. pgtest settings + 测试库隔离策略(绝不在开发/生产库上跑)
3. 本地起 PG(Docker 或复用现有实例)→ 跑通
4. 把命令固化进 README/docs
```
## 四、验收标准
- [ ] `pytest -q --settings=config.settings.pgtest` 下 **4 个原跳过用例 passed**(贴原始输出)
- [ ] 测试库与开发/生产严格隔离(DSN 不同、conftest 防护或文档明示)
- [ ] 文档包含:环境准备一条命令、运行一条命令、常见坑
- [ ] 默认 `pytest -q` 行为不变(不强制依赖 PG)
- [ ] 无生产配置变更
## 五、验收命令(参考)
```bash
# 起 PG(示例,按项目已有约定调整)
docker run -d --rm --name dh-pgtest -p 15433:5432 -e POSTGRES_USER=dh -e POSTGRES_PASSWORD=dh -e POSTGRES_DB=dh_test postgres:16-alpine
cd backend && pytest -q -k "concurren" --settings=config.settings.pgtest
```
## 六、边界(不许做)
- 不为了过测试放宽用例本身
- 不改生产 settings 默认值
- 不把测试库指向任何已有数据库
## 七、交接
写 `PROGRESS_D-02.md`(含 4 用例 passed 原始输出 + PG 启动命令)。