mirror of
https://github.com/aiclientproxy/proxycast.git
synced 2026-09-24 23:10:56 +08:00
8.4 KiB
8.4 KiB
Lime 测试体系
面向 Lime 当前桌面端产品形态的测试入口与索引
概述
Lime 当前是一个本地优先的 Tauri 桌面应用,而不是单一前端项目或单一 API 服务。
测试体系需要同时覆盖:
- 前端界面与工作台交互
- Tauri 命令边界
- Rust 服务层与业务逻辑
- 数据库、文件系统与工作区状态
- Provider、协议转换与本地 HTTP Server
- 浏览器运行时、终端、OpenClaw 等桌面能力
- Agent Runtime 与真实模型行为
- macOS / Windows 平台差异
测试分层
┌─────────────────────────────────────────────────────────────────┐
│ Lime 测试金字塔 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ │
│ │ E2E │ 端到端测试 │
│ │ 测试 │ (Tauri + 前端) │
│ ─┴─────────┴─ │
│ ┌─────────────┐ │
│ │ 集成测试 │ API 服务器、凭证池 │
│ ─┴─────────────┴─ │
│ ┌─────────────────┐ │
│ │ 单元测试 │ 转换器、Provider、工具 │
│ ─┴─────────────────┴─ │
│ │
└─────────────────────────────────────────────────────────────────┘
目录结构
docs/test/
├── README.md # 本文件 - 测试体系概览
├── testing-strategy-2026.md # 当前 Lime 主测试策略
├── unit-tests.md # 单元测试指南
├── integration-tests.md # 集成测试指南
├── e2e-tests.md # 浏览器续测与 E2E 总览
├── agent-evaluation.md # Agent 评估指南(核心文档)
├── harness-evals.md # Harness eval 任务集与 runner 入口
└── test-cases/ # 测试用例模板
├── converter-tests.md # 协议转换器测试用例
├── provider-tests.md # Provider 测试用例
└── agent-tests.md # Agent 测试用例
文档索引
| 文档 | 说明 | 适用场景 |
|---|---|---|
| testing-strategy-2026.md | 当前 Lime 测试体系建设建议 | 建立分层门禁、规划演进 |
| unit-tests.md | 单元测试指南 | 独立模块测试 |
| integration-tests.md | 集成测试指南 | 模块间协作测试 |
| e2e-tests.md | 当前浏览器续测与 E2E 入口 | Playwright MCP / DevBridge 主路径验证 |
| ../aiprompts/playwright-e2e.md | 浏览器续测详细事实源 | 继续测试、复现、控制台与 Bridge 排障 |
| agent-evaluation.md | Agent 评估指南 | AI Agent 行为评估 |
| harness-evals.md | Harness eval 任务集与 runner | Replay 样本、grader、nightly 摘要 |
| test-cases/converter-tests.md | 转换器测试用例 | OpenAI ↔ Claude 转换 |
| test-cases/provider-tests.md | Provider 测试用例 | OAuth 和 API 调用 |
| test-cases/agent-tests.md | Agent 测试用例 | Aster Agent 集成 |
快速开始
运行 Rust 测试
cd src-tauri && cargo test
运行前端测试
npm test
运行本地智能校验
npm run verify:local
运行本地全量校验
npm run verify:local:full
浏览器模式桥接检查
npm run bridge:health -- --timeout-ms 120000
运行自包含 smoke
npm run smoke:workspace-ready
npm run smoke:browser-runtime
npm run smoke:site-adapters
npm run smoke:agent-runtime-tool-surface
npm run smoke:agent-runtime-tool-surface-page
运行 Harness eval 摘要
npm run harness:eval
提升工作区 Replay 为仓库样本
npm run harness:eval:promote -- --session-id "session-123" --slug "pending-request-runtime"
运行 Harness eval 趋势报告
npm run harness:eval:trend
记录 Harness eval 历史窗口
npm run harness:eval:history:record
默认会把完整 artifact 套件写到 ./.lime/harness/reports/:
harness-eval-summary.jsonharness-eval-summary.mdharness-eval-trend.jsonharness-eval-trend.mdharness-cleanup-report.jsonharness-cleanup-report.mdharness-dashboard.html
运行 Harness cleanup / slop 报告
npm run harness:cleanup-report
当前浏览器续测入口
当前仓库的浏览器模式 E2E / 续测文档分两层:
docs/test/e2e-tests.md:总览、命令矩阵、适用边界docs/aiprompts/playwright-e2e.md:详细操作流程与 Playwright MCP 续测事实源
运行代码检查
# Rust
cd src-tauri && cargo clippy
# 前端
npm run lint
核心测试模块
| 模块 | 测试重点 | 文档 |
|---|---|---|
| 协议转换 | OpenAI ↔ Claude 转换正确性 | converter-tests.md |
| Provider 系统 | OAuth 刷新、API 调用 | provider-tests.md |
| 凭证池 | 轮询、健康检查、负载均衡 | integration-tests.md |
| Aster Agent | 流式响应、工具调用 | agent-tests.md |
测试原则
基于 Anthropic AI Agent 评估指南 和 Orchids Bridge 项目实践:
- 评估结果,而非路径 - Agent 可能找到更好的方法,不要过度约束执行路径
- 平衡问题集 - 测试"应该做"和"不应该做"两种情况
- 隔离测试环境 - 每个测试独立状态,避免测试间污染
- 从 Bug 到测试 - 每个修复的 Bug 都应该有对应测试用例
- 处理非确定性 - 使用 pass@k 和 pass^k 指标评估 Agent 行为
- 多层防护 - 结合自动评估、监控、人工审查
评分器类型
| 类型 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 代码评分器 | 确定性验证 | 快速、可复现 | 对有效变体脆弱 |
| 模型评分器 | 语义评估 | 灵活、可扩展 | 非确定性、需校准 |
| 人工评分器 | 复杂判断 | 金标准质量 | 昂贵、慢 |
评估指标
pass@k = P(至少 1 次成功 | k 次尝试) = 1 - (1 - p)^k
pass^k = P(全部成功 | k 次尝试) = p^k
- pass@k:适用于"找到一个解决方案就行"的场景
- pass^k:适用于"每次都必须成功"的场景