chore: e2e 测试与单元测试分离,通过脚本区分
This commit is contained in:
@@ -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`)
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
"module": "src/cli.ts",
|
||||
"scripts": {
|
||||
"prepare": "husky",
|
||||
"test": "bun test --path-ignore-patterns 'tests/agent/**'",
|
||||
"test:e2e": "bun test tests/agent/",
|
||||
"test:e2e:llm": "bun test tests/agent/e2e-llm-judge.test.ts --timeout 120000",
|
||||
"lint": "oxlint",
|
||||
"format": "oxfmt .",
|
||||
"format:check": "oxfmt --check .",
|
||||
|
||||
Reference in New Issue
Block a user