Docker 集成测试策略
本文说明容器化栈中完整 run 生命周期的 Docker-backed 集成测试方案。
目标
- 证明 API、worker、beat、PostgreSQL、Redis 与本地 OpenAI-compatible test gateway 能正确协同
- 验证 run 创建、执行、评分、重试与 SSE 更新
- 保持 fixtures 可确定复现,并可在 CI 和本地调试中复用
快速开始
该辅助脚本会:
- 创建或复用
.env.integration - 启动
postgres、redis、本地 OpenAI-compatible gateway、celery-worker和可选的celery-beat - 执行 migrations
- 注入可复现的 provider 与 dataset fixtures
- 执行
pytest -m integration - 将日志和 coverage 收集到
.artifacts/docker-integration/
拓扑
postgresredis- 本地 OpenAI-compatible test gateway(compose service:
fake-openai) celery-worker- 可选
celery-beat - backend test container
场景矩阵
Test Gateway 说明
集成测试不依赖外部 API keys。
取而代之,整套栈会注入一个本地 OpenAI-compatible test provider。 应用本身仍走标准 LiteLLM client path;只有 provider endpoint 是本地且确定性的。
Model-name 约定:
gpt-3.5-turbo:成功*-fail-once-*:第一次失败,之后成功*-always-fail-*:每次都失败
本地开发者工作流
排查失败时可结合 docker compose logs backend、docker compose logs celery-worker
和 artifact 目录一起查看。
