2.2 KiB
2.2 KiB
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 明确写了"本轮未伪造该环境结果"。补齐测试矩阵最后一块,把"没验证"变成"已验证"。
二、目标(交付物)
config/settings/pgtest.py:从环境变量读 PG 连接(或提供默认容器 DSN),并发测试专用。- 一条命令可建测试库并跑 4 个用例(附 Docker 命令或已有 PG 说明)。
- 文档:
backend/docs/pgtest.md(怎么起 PG、怎么跑、为什么这类测试必须真 PG)。 - 4 个用例真实跑通(不再是 skip)。
三、执行步骤
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) - 无生产配置变更
五、验收命令(参考)
# 起 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 启动命令)。