工程开发
E2E Testing Nori Skillsets Subcommands avatar

E2E Testing Nori Skillsets Subcommands

使用 tmux 对 nori-skillsets CLI 子命令进行端到端测试,实现隔离、安全且可重现的文件系统副作用验证。

简介

此技能为开发人员和质量工程师提供了一个强大的框架,用于对 nori-skillsets CLI 执行端到端 (E2E) 测试。通过利用 tmux 进行进程管理和严格的环境变量隔离,它允许在不冒着破坏用户本地配置或系统级设置风险的情况下,对 CLI 子命令进行交互式验证。测试过程确保了从初始化、下载到切换技能集 (skillset) 的每个指令,都能在受控且短暂的环境中精确运作。

  • 使用 NORI_GLOBAL_CONFIG 实现完整的文件系统隔离,将配置路径重定向,避开主机用户主目录。

  • 自动化的环境设置与拆除程序,确保每个测试案例都有干净的起始状态,目标目录为 /tmp/nori/skillsets-e2e-scenario/。

  • 与 TUI 傀儡脚本 (TUI puppeteering) 整合,支持对终端机 UI 元素(如基于 clack 的提示、进度条、选择菜单及输出说明)的脚本化断言。

  • 验证 CLI 的状态变更,包括技能集、MCP 配置及特定代理程序指令档的建立、修改或删除。

  • 支持复杂的测试计划,包含写入测试数据、验证成功与失败流程,以及确保真实环境保持不受影响。

  • 在执行任何子命令前,请务必使用提供的 e2e-setup 脚本初始化隔离环境。

  • 确保所有指令执行时皆设置环境变量 NORI_GLOBAL_CONFIG 指向目标 E2E 目录,以防止写入 ~/.nori/ 或 ~/.claude/。

  • 使用 tui-start 和 tui-stop 来管理 tmux 会话生命周期,这有助于实现可重复的 TUI 交互模式。

  • 测试完成后,验证暂存目录内的预期副作用,并执行 e2e-teardown 进行清理。

  • 编写测试断言逻辑时,请密切注意如 clack intro 和 outro 等 UI 约定,以准确判断测试成功或失败的情境。

仓库统计

Star 数
128
Fork 数
9
Open Issue 数
7
主要语言
TypeScript
默认分支
main
同步状态
空闲
最近同步时间
2026年5月3日 19:33
在 GitHub 查看