chore: e2e 测试与单元测试分离,通过脚本区分

This commit is contained in:
2026-06-09 16:23:32 +08:00
parent 073b9c1e47
commit faefefda39
2 changed files with 33 additions and 14 deletions

View File

@@ -37,14 +37,26 @@ tests/ # 测试目录(镜像 src 结构)
## 开发命令
```bash
bun test # 运行全部测试
bun test tests/core/ # 运行指定目录测试
bun test # 运行单元/集成测试(排除 agent e2e 测试)
bun run test:e2e # 运行 agent 端到端测试Tier 1 + 2< 5s
bun run test:e2e:llm # 运行 LLM-as-Judge 测试Tier 3需设置环境变量
bun test tests/core/ # 运行指定目录测试
bun src/cli.ts init opencode # 测试 init 命令
bun src/cli.ts plan <变更名> <文档名> # 测试 plan 命令
bun src/cli.ts status [变更名] # 测试 status 命令
bun src/cli.ts help # 查看全局帮助
bun src/cli.ts help init # 查看 init 命令帮助
bun src/cli.ts version # 查看版本号
bun src/cli.ts help # 查看全局帮助
bun src/cli.ts help init # 查看 init 命令帮助
bun src/cli.ts version # 查看版本号
```
### Tier 3 LLM-as-Judge 环境变量
```bash
export RUNE_E2E_LLM_API_KEY="your-api-key" # 必填
export RUNE_E2E_LLM_PROVIDER="openai" # 可选,默认 openai
export RUNE_E2E_LLM_MODEL="gpt-4o-mini" # 可选,默认 gpt-4o-mini
export RUNE_E2E_LLM_BASE_URL="https://..." # 可选,自定义 endpoint
bun run test:e2e:llm
```
### 代码质量
@@ -117,18 +129,22 @@ CLI 通过子命令提供帮助和版本信息,不使用 `--help`/`--version`
## 测试策略
### Level 1 — 纯单元/集成测试(当前
### 单元/集成测试(`bun test`
在临时目录执行完整流程,验证文件创建、目录结构、提示词输出。
在临时目录执行完整流程,验证文件创建、目录结构、提示词输出。覆盖 `src/core/``src/cli/``src/adapters/``tests/integration/`
### Level 2 — 提示词快照测试(后续增强
### Agent 端到端测试(`bun run test:e2e`
对每个阶段捕获提示词输出,与预期快照对比。
位于 `tests/agent/`,灰度盒测试互补现有白盒测试,三层架构:
### Level 3 — mock-agent 端到端(后续增强)
| Tier | 说明 | 触发 |
| -------------- | ---------------------------- | ------------------------------ |
| 1 命令级 mock | 每命令预设行为CI 快速门禁 | `bun run test:e2e` |
| 2 场景级 mock | 行为重写,覆盖边界和错误恢复 | `bun run test:e2e` |
| 3 LLM-as-Judge | 调用 LLM API 验证提示词质量 | `bun run test:e2e:llm`(手动) |
编排完整闭环rune 输出 → mock-agent 处理 → rune 继续下一阶段。
运行策略:
### Level 4 — 真实 AI 工具集成CI 可选)
调用 LLM API 验证输出格式可被解析。
- `bun test`pre-commit 用Tier 1 + 2 **不参与**,仅跑单元/集成
- `bun run test:e2e`Tier 1 + 2< 5s
- `bun run test:e2e:llm`Tier 3手动触发`RUNE_E2E_LLM_API_KEY`