# 第十二章:测试与验证
> 🧪 本章详细介绍 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 条回复还没有人回复,快来发表你的看法吧!