用途:当 .github/workflows/test-cli.yml 或 Test CLI 工作流在 CI 失败、inso bundle 测试在本地或 GitHub Actions 失败,或怀疑 Node.js 与 Electron 之间存在模块/运行时差异时,用该技能在本地复现并定位问题。
主要能力:从失败证据入手,借助日志或工作流运行链接判断失败发生在 test:bundle、打包二进制运行还是构建/打包准备阶段,记录失败测试名与首个可操作错误信息后再本地复现;覆盖 bundle 与 binary 两条测试路径。
使用方式:先安装 Node 目标的原生依赖 npm run install-libcurl-node;构建生成 dist:npm run build -w insomnia-inso;启动 CLI 测试用的 smoke-test echo 服务:npm run serve -w insomnia-smoke-test;在另一终端运行 npm run test:bundle -w insomnia-inso;若 CI 失败在打包二进制路径或 bundle 套件本地通过,再运行 npm run test:binary -w insomnia-inso。
常见失败模式:涉及 @getinsomnia/node-libcurl、NODE_MODULE_VERSION、dlopen 或原生模块加载的错误,通常需用 npm run install-libcurl-node 重装 Node 目标 libcurl;连接 http://localhost:4010 失败通常表示 smoke-test 服务未运行;缺少 dist 输出或 binaries/inso 通常需重跑构建或打包步骤。
成功标准:npm run test:bundle -w insomnia-inso 成功退出且 Vitest 报告 inso dev bundle 测试通过;若验证打包二进制路径,npm run test:binary -w insomnia-inso 也成功退出。
限制与收尾:bundle 测试执行期间需保持 smoke-test 服务运行;验证完成后停止 npm run serve -w insomnia-smoke-test 进程,并用 npm run install-libcurl-electron 重装 Electron 目标 libcurl 以继续 Electron 开发。