docs: 归属M1/M2/M3十二项PROGRESS(C-02~C-06/E-03~E-05/D-01/D-02/I-01/S-01)

This commit is contained in:
2026-09-14 03:03:09 +08:00
parent 71adc8a515
commit ae1e221bcf
12 changed files with 499 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
# PROGRESS_D-02 · PG 并发测试环境(激活 4 个 skipped)
> 日期 2026-09-13 · 范围:只改 `gj/dealerhub` 目录(新建 `backend/docs/pgtest.md` 一文件,零代码变更)
## 现状 vs 差距(接手时)
- 已有:`config/settings/pgtest.py`(PG DSN,环境变量覆盖)+ `scripts/setup_pg.py`(建库+迁移)+
`tests/test_concurrency.py` 4 个 `@pytest.mark.postgres` 真并发用例 +
`conftest.py` 自动跳过守卫 + `pytest.ini` marker 注册。
- 缺口(任务卡验收项):`backend/docs/pgtest.md` 缺失;4 用例需在本机真实跑通贴输出。
## 改动
1. `backend/docs/pgtest.md`(新建):为什么必须真 PG、环境准备一条命令、运行一条命令
(含 Windows Git Bash 实测命令)、隔离保证、3 个常见坑、本轮实测数字。
## 验证(本机 PG 16,127.0.0.1:5433,全部实跑)
```bash
python scripts/setup_pg.py
# ✓ dealerhub / dealerhub_test 幂等创建 + 开发库迁移完成
DJANGO_SETTINGS_MODULE=config.settings.pgtest python -m pytest tests/test_concurrency.py -p no:cacheprovider -m postgres
# 4 passed, 11 deselected in 11.20s
DJANGO_SETTINGS_MODULE=config.settings.pgtest python -m pytest -p no:cacheprovider
# 516 passed in 100.25s(0 skipped)
python -m pytest tests/test_concurrency.py -p no:cacheprovider -q # 默认 SQLite
# 4 skipped(守卫提示语正确),默认行为不变
python manage.py makemigrations --check --dry-run # No changes detected
python manage.py check # 0 issues
```
## 状态
done。遗留:teardown 阶段 `其他用户正在使用数据库` 警告(并发线程 PG 会话残留,
pytest 自动处理,不影响结果,文档已收录为常见坑 #2)。