
如何运行 Modly 测试套件pytest node --test 双测试体系完整指南【免费下载链接】modlyDesktop app to generate 3D models from images or prompt using local AI — runs entirely on your GPU项目地址: https://gitcode.com/GitHub_Trending/mo/modlyModly 是一款本地 AI 驱动的 3D 模型生成桌面应用它的测试套件采用 pytest 命名 node --test 的双测试体系Python 侧覆盖api/后端Node 侧覆盖前端与 Electron 主进程一条npm test命令即可全量运行。本文带你快速理解这套体系并跑通全部用例 双测试体系总览Modly 的代码分为两个世界Python 后端负责模型扩展进程管理和TypeScript 前端Electron React 界面。测试也相应拆成两条流水线统一由 npm scripts 编排侧框架测试目录触发命令Python 后端标准库unittestapi/tests/npm run test:pyNode.js / Electron原生node --test分散于src/、electron/npm run test:node全量——npm test三个命令的定义都集中在 package.json 中test: npm run test:py npm run test:node, test:py: node scripts/run-pytests.mjs, test:node: node --test … 小贴士跑之前先执行一次npm install并确保系统里有可用的 Python 3 解释器详见 README.md 的开发环境章节。一键安装与运行步骤完整流程只有两步npm install npm testnpm test会先跑 Python 侧再跑 Node 侧任何一侧失败都会以非零退出码终止方便接入 CI。若还想做更严格的质量门禁README.md 建议追加类型检查与构建./node_modules/.bin/tsc --noEmit -p tsconfig.node.json npm run buildPython 侧为什么叫 run-pytests这是最容易让人困惑的地方 —— 脚本名字叫 scripts/run-pytests.mjs但项目并没有依赖 pytest实际调用的是 Python 标准库的unittest。这个脚本做了两件聪明的事跨平台解释器探测依次尝试python3、python、py -3Windows 启动器谁可用就用谁找不到则报错退出测试发现在api/目录下执行python -m unittest discover -s tests自动收集所有测试文件。目前包含两组用例api/tests/test_runner.py —— 验证扩展运行器的节点选择、manifest 元数据合并以及扩展子进程的 newline-JSON 通信协议recv/sendapi/tests/test_extension_process.py —— 验证扩展进程的 venv 解释器路径解析、缺失模块提取与自动修复映射等安全逻辑。如果想单独手动运行Python 测试cd api python -m unittest discover -s tests另外 tools/modly-cli/test_agent.py 是 CLI 工具的独立测试可用python tools/modly-cli/test_agent.py单独执行。Node 侧node --test 如何直跑 TypeScriptNode 18 内置的node --test测试运行器是 Node 侧的核心test:node实际上分两段执行第一段TypeScript 测试文件node --test --experimental-strip-types \ --experimental-loader ./scripts/node-ts-extensionless-loader.mjs \ src/shared/types/assetLibrary.test.ts …两个关键参数值得理解--experimental-strip-types让 Node 直接运行.ts文件需要Node 22--experimental-loader加载自定义 scripts/node-ts-extensionless-loader.mjs当import ./foo找不到模块时自动补上.ts后缀重试一次解决了 TS 无扩展名导入的痛点。第二段JavaScript 测试文件glob 通配node --test electron/main/*.test.mjs src/**/*.test.mjsNode 侧覆盖的代表性用例测试文件关注点electron/main/extension-path-guard.test.ts扩展 ID 安全校验拒绝路径穿越与非法字符electron/main/artifact-registry-service.test.ts工件注册服务src/shared/types/assetLibrary.test.ts资产库能力分类与条目模型src/areas/generate/assetLibraryService.test.ts资产库服务逻辑src/areas/workflows/nodeBehaviors.test.mjs工作流节点行为src/shared/utils/format.test.mjs格式化工具函数这些用例都遵循统一风格node:test定义用例 node:assert/strict断言零额外测试依赖。想单独调试某个文件时直接node --test electron/main/extension-path-guard.test.ts常见问题排查症状原因与解法No Python interpreter found (tried python3, python, py -3)系统缺少 Python 3安装后重跑npm test--experimental-strip-types报错Node 版本过低升级到Node 22Python 侧 0 个用例被发现确认在仓库根目录执行发现目录为 api/tests/想看详细输出分别单独运行npm run test:py和npm run test:node分段观察结语Modly 的双测试体系体现了少即是多的工程哲学Python 侧靠标准库 unittestNode 侧靠原生 node --test不引入任何重型测试框架。掌握npm test这一条命令后你可以在贡献代码或排查问题前先为整个本地 AI 3D 生成流水线做一次完整体检 ✅相关模块路径速查测试编排入口package.jsonPython 可移植运行器scripts/run-pytests.mjsTS 无扩展名解析器scripts/node-ts-extensionless-loader.mjs开发环境与测试说明README.md【免费下载链接】modlyDesktop app to generate 3D models from images or prompt using local AI — runs entirely on your GPU项目地址: https://gitcode.com/GitHub_Trending/mo/modly创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考