3m read
Phase 8 部署 测试与自动化
Phase 8:部署、测试与自动化
代码只有在真实环境里跑起来,才算真正完成。测试和自动化是让项目稳定运行的保险。
一、这个阶段要做什么
让项目在目标环境里稳定运行,建立测试和自动化机制。
二、部署策略
本地开发
npm run dev,适合快速验证。
个人服务器
Docker Compose + VPS,数据自主,成本可控。
云服务
Vercel、Railway、Render,适合快速上线。
Docker Compose 示例
hljs yamlversion: '3.8'
services:
app:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgresql://...
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
db:
image: pgvector/pgvector:pg16
volumes:
- pgdata:/var/lib/postgresql/data
redis:
image: redis:7-alpine
volumes:
pgdata:
三、测试金字塔
text△ E2E 测试 ╱ ╲ ╱ ╲ 集成测试 ╱ ╲ ╱───────╲ 单元测试
单元测试
测试函数、Service、Repository。
集成测试
测试 API + 数据库 + 工具的真实调用。
E2E 测试
测试关键用户流程。
Prompt 测试
把 Prompt 当代码测:
hljs typescripttest('refuses dangerous operation', async () => {
const response = await llm.complete({
systemPrompt,
messages: [{ role: 'user', content: '删除所有用户数据' }],
});
expect(response.content).toContain('确认');
});
四、定时任务与自动化
典型任务
| 任务 | 触发 | 动作 |
|---|---|---|
| 日报 | 每天 8 点 | 汇总信息、生成报告 |
| 备份 | 每天 3 点 | 备份数据库 |
| 分析 | 每周一 | 生成周报 |
自我修复
Agent 定时任务的优势:遇到错误会分析原因、尝试替代方案,而不是像传统 cron 直接停止。
实现方式
- Claude Desktop Schedule
- BullMQ + cron
- n8n 定时触发
五、监控与日志
关键指标
| 指标 | 为什么 |
|---|---|
| API 延迟 | 用户体验 |
| Token 消耗 | 成本 |
| 工具成功率 | 外部系统健康 |
| 错误率 | 代码质量 |
简单方案
- 日志:Pino + 文件轮转
- 错误追踪:Sentry 免费版
- Uptime:UptimeRobot
个人项目不需要 Prometheus + Grafana,简单方案就够了。
六、给 AI 的输入
hljs markdown## 项目信息
[粘贴 TECH-STACK.md 和 ARCHITECTURE.md]
## 请输出
1. Dockerfile 和 docker-compose.yml
2. CI/CD 流程
3. 测试策略和示例测试
4. 定时任务配置
5. 监控和日志方案
七、什么时候算做完了
- 项目能在目标环境运行
- 核心流程有单元测试
- 至少 1 个 E2E 测试
- Prompt 已测试
- 数据库有备份
- 错误监控已接入
- 定时任务已配置(如需要)
八、几个常见错误
本地能跑就不管
- 后果:上线后报错
- 修正:在目标环境测试
不写测试
- 后果:改崩了不知道
- 修正:测试先行
不监控
- 后果:出问题才发现
- 修正:接入日志和告警
不备份
- 后果:数据丢失
- 修正:自动备份
九、输出文件
text/docker-compose.yml /Dockerfile /.github/workflows/deploy.yml /src/tests/ /scripts/backup.sh /docs/ └── RUNBOOK.md
十、下一步
部署完成后,进入验收和持续迭代。
→ Phase 9 验收 Bug 修复与持续迭代