测试矩阵
本文记录 TradingCopilot 的主要验证范围。外部集成验证依赖服务、凭据和网络条件,历史通过结果不代表当前服务仍可访问。
必需本地检查
| 范围 | 主要检查 |
|---|---|
| 架构边界 | go test ./internal/architecture |
| 完整 Go 套件 | go test ./... |
| API 契约 | go test ./internal/transport/http ./internal/transport/http/jsonapi |
| 数据库契约 | go test ./internal/infra/persistence/gorm/connect ./internal/infra/persistence/gorm/repo |
| 前端契约 | npm run typegen:api --prefix frontend; npm run build --prefix frontend |
| 静态部署配置 | docker compose config |
领域覆盖
| 领域 | 重点 |
|---|---|
| 认证和安全 | 管理员初始化、JWT、密码哈希、密钥加密、未授权拒绝 |
| 设置 | 运行时环境变量、应用设置、密钥、代理、日志配置 |
| 日志 | JSONL 日志、字段契约、脱敏、轮转、查询 API |
| AI | 提供方增删改查、模型同步、OpenAI 兼容客户端、角色能力 |
| 研究团队 | 团队、团队角色、默认角色重置、团队隔离 |
| 行情 | 标的规范化、历史数据、实时行情、自选、工具查询 |
| 消息 | Telegram/RSS 订阅、过滤器、队列、平台适配器 |
| 会议 | CRUD、SSE、取消、删除、重启、复盘、工具调用 |
| 唤醒计划 | 状态转换、条件触发、事件匹配、重新调度 |
| 模拟交易 | 风险配置、账户、订单、成交、持仓、绩效 |
| 仪表盘和运行时 | 诊断、心跳、业务指标、任务恢复 |
外部集成检查
| 检查 | 命令 |
|---|---|
| Redis/asynq | TC_INTEGRATION_REDIS=1 go test ./internal/integration -run TestRedisAsynqIntegrationHarness -v -count=1 |
| PostgreSQL/TimescaleDB | TC_INTEGRATION_POSTGRES=1 TC_REQUIRE_TIMESCALE=1 go test ./internal/integration -run TestPostgresTimescaleSchemaInitHarness -v -count=1 |
| 行情提供方 | TC_INTEGRATION_MARKET=1 go test ./internal/integration -run TestMarketProviderIntegrationHarness -v -count=1 |
| AI 提供方 | TC_INTEGRATION_AI=1 go test ./internal/integration -run TestAIProviderIntegrationHarness -v -count=1 |
| Telegram MTProto | TC_INTEGRATION_TELEGRAM=1 go test ./internal/integration -run TestTelegramMTProtoIntegrationHarness -v -count=1 |
维护规则
- 行为变更影响 API、持久化、后台处理或外部集成边界时,必须新增或更新测试。
- Redis/asynq 周期任务应按 task type 合并,并使用稳定任务 ID。
- 消息摄取和回填路径不得同步调用 AI 过滤。
- 保持 OpenAPI、生成类型和文档对齐。
- 依赖外部服务前,重新运行相关集成检查。