name: cli-testing description: 后端代码修改后,通过 CLI 测试验证功能正确性。使用场景:修改了 electron/services/ 下的代码需要测试、准备提交代码前跑回归、用户要求"跑测试"/"验证一下"。
CLI 测试
项目提供了 CLI 模式(npm run sft),可在纯 Node.js 下运行所有后端服务。
修改后端代码后,必须利用 CLI 验证功能正确性,不能只靠"能编译"就认为没问题。
何时使用本技能
- 修改了
electron/services/下的任何服务 - 准备提交代码前
- 用户要求"跑测试"、"验证"、"测一下"
完整回归测试(提交前必跑)
bash electron/cli/test-cli.sh --no-ai # 无需 AI API Key,~10秒
bash electron/cli/test-cli.sh # 有 API Key 时跑全量
针对性验证(改了哪个服务就测哪个)
| 改动范围 | 验证命令 |
|---|---|
| config.service.ts | sft config:get language && sft config:set theme '"test"' && sft config:get theme |
| ai.service.ts | sft ai:models / sft ai:chat "测试" |
| agent/ 目录 | sft agent:run "列出当前目录文件" --mode free |
| knowledge/ 目录 | sft knowledge:list && sft knowledge:search "测试" |
| history.service.ts | sft history:list && sft history:stats |
| host-profile.service.ts | sft host:list && sft host:get local |
| ssh.service.ts | sft ssh:list |
| pty.service.ts | sft pty:exec "echo ok" && sft pty:shells |
| scheduler.service.ts | sft scheduler:list && sft scheduler:history |
| mcp.service.ts | sft mcp:list |
| local-fs.service.ts | sft fs:list /tmp && sft fs:info |
| document-parser.service.ts | sft doc:parse README.md && sft doc:types |
| user-skill.service.ts | sft skill:list |
| watch/ 目录 | sft watch:list && sft watch:history && sft watch:templates && sft watch:state |
| sensor/ 目录 | sft sensor:status && sft sensor:heartbeat |
sft即npm run sft --,直接用node electron/cli/main.js也行。
新增服务或命令时
- 在
electron/cli/index.ts中添加对应的 CLI 命令 - 在
test-cli.sh中添加对应的测试用例(包括正常场景和错误场景) - 运行测试套件确认全部通过
- 更新
.cursor/rules/project-architecture.mdc中的架构描述
测试失败怎么办
- 先确认是自己的改动导致的还是已有问题
- 修复后重跑测试,确保全部通过再提交
- 如果是测试脚本本身需要更新(如服务接口变了),同步更新
test-cli.sh