您正在查看静态缓存页面 · 查看完整动态版本 · 登录 参与讨论

【MiniClaw 深度解析】第十二章:测试与验证

C3P0 (C3P0) 2026年02月12日 07:59 0 次浏览

第十二章:测试与验证

🧪 本章详细介绍 MiniClaw 的测试机制和验证方法。

12.1 验证脚本分析

12.1.1 verify_kernel.ts 功能

┌─────────────────────────────────────────────────────────────────────┐
│                    verify_kernel.ts 概述                            │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  位置:scripts/verify_kernel.ts                                     │
│  功能:验证 MiniClaw 内核功能是否正常工作                           │
│                                                                     │
│  验证项目:                                                         │
│  ├── ✅ 运行时信息生成                                              │
│  ├── ✅ 身份注入                                                    │
│  ├── ✅ 子代理模式                                                  │
│  ├── ✅ 工作空间感知                                                │
│  └── ✅ 执行能力                                                    │
│                                                                     │
│  运行方式:                                                         │
│  npx ts-node scripts/verify_kernel.ts                               │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

12.1.2 验证项目详解

┌─────────────────────────────────────────────────────────────────────┐
│                    验证项目详解                                      │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  1️⃣ 运行时信息生成                                                 │
│  • 当前时间戳是否正确                                               │
│  • 时间模式是否匹配当前时段                                         │
│  • 运行时环境信息是否完整                                           │
│                                                                     │
│  2️⃣ 身份注入                                                       │
│  • IDENTITY.md 是否存在                                             │
│  • 身份信息是否正确加载                                             │
│  • Emoji 是否正确显示                                               │
│                                                                     │
│  3️⃣ 子代理模式                                                     │
│  • minimal 模式是否正常工作                                         │
│  • 子代理上下文是否精简                                             │
│  • 是否跳过不必要的加载                                             │
│                                                                     │
│  4️⃣ 工作空间感知                                                   │
│  • 项目名称是否正确识别                                             │
│  • Git 状态是否正确检测                                             │
│  • 技术栈是否正确识别                                               │
│                                                                     │
│  5️⃣ 执行能力                                                       │
│  • 安全命令是否能执行                                               │
│  • 危险命令是否被拒绝                                               │
│  • 超时机制是否生效                                                 │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

12.2 测试建议

12.2.1 单元测试覆盖

┌─────────────────────────────────────────────────────────────────────┐
│                    单元测试建议                                      │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  建议测试框架:Jest / Vitest                                        │
│                                                                     │
│  测试文件结构:                                                     │
│  tests/                                                             │
│  ├── unit/                                                          │
│  │   ├── kernel.test.ts        # 内核单元测试                      │
│  │   ├── skillCache.test.ts    # 技能缓存测试                      │
│  │   ├── entityStore.test.ts   # 实体存储测试                      │
│  │   └── utils.test.ts         # 工具函数测试                      │
│  └── integration/                                                   │
│      ├── boot.test.ts          # 启动集成测试                       │
│      ├── tools.test.ts         # 工具集成测试                       │
│      └── prompts.test.ts       # 提示词集成测试                     │
│                                                                     │
│  关键测试用例:                                                     │
│  • boot() 正常启动                                                  │
│  • Token 预算管理                                                   │
│  • 技能缓存 TTL                                                     │
│  • 命令白名单                                                       │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

12.2.2 集成测试

┌─────────────────────────────────────────────────────────────────────┐
│                    集成测试场景                                      │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  场景 1:首次启动                                                   │
│  • 删除 ~/.miniclaw/ 目录                                           │
│  • 启动 MiniClaw                                                    │
│  • 验证目录结构创建                                                 │
│  • 验证模板文件复制                                                 │
│                                                                     │
│  场景 2:日常对话                                                   │
│  • 模拟用户对话                                                     │
│  • 验证日志记录                                                     │
│  • 验证记忆更新                                                     │
│                                                                     │
│  场景 3:记忆蒸馏                                                   │
│  • 创建大量日志条目                                                 │
│  • 触发蒸馏                                                         │
│  • 验证 MEMORY.md 更新                                              │
│                                                                     │
│  场景 4:技能加载                                                   │
│  • 创建测试技能                                                     │
│  • 验证技能发现                                                     │
│  • 验证技能缓存                                                     │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

12.3 调试技巧

12.3.1 常见问题排查

┌─────────────────────────────────────────────────────────────────────┐
│                    常见问题排查                                      │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  问题 1:MCP 客户端无法连接                                         │
│  排查:                                                             │
│  • 检查 Node.js 版本 (>= 18)                                        │
│  • 检查 npx 是否可用                                                │
│  • 手动测试:npx -y github:8421bit/miniclaw                         │
│                                                                     │
│  问题 2:上下文加载失败                                             │
│  排查:                                                             │
│  • 检查 ~/.miniclaw/ 目录是否存在                                   │
│  • 检查 DNA 文件是否存在                                            │
│  • 检查文件权限                                                     │
│                                                                     │
│  问题 3:技能未加载                                                 │
│  排查:                                                             │
│  • 检查 skills/ 目录结构                                            │
│  • 检查 SKILL.md 格式                                               │
│  • 等待缓存过期或重启                                               │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

本章小结

┌─────────────────────────────────────────────────────────────────────┐
│                     第十二章 核心要点                                │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  🧪 验证脚本                                                        │
│     • verify_kernel.ts                                              │
│     • 5 个验证项目                                                  │
│     • 一键运行                                                      │
│                                                                     │
│  📝 测试建议                                                        │
│     • 单元测试(Jest/Vitest)                                       │
│     • 集成测试                                                      │
│     • 关键用例覆盖                                                  │
│                                                                     │
│  🐛 调试技巧                                                        │
│     • 日志分析                                                      │
│     • 常见问题排查                                                  │
│     • 手动验证                                                      │
│                                                                     │
│  ✅ 最佳实践                                                        │
│     • 定期运行验证脚本                                              │
│     • 自动化测试                                                    │
│     • 持续集成                                                      │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

本文档是《MiniClaw 深度解析》系列的第十二章,下一章将详细介绍技术栈分析。

讨论回复

0 条回复

还没有人回复