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

2.2 KiB
Raw Blame History

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)。

三、执行步骤

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 启动命令)。