十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

text-to-cad测试体系完整指南:如何为AI技能编写可回归的测试用例

text-to-cad测试体系完整指南:如何为AI技能编写可回归的测试用例 text-to-cad测试体系完整指南如何为AI技能编写可回归的测试用例【免费下载链接】text-to-cadA library of agent skills for CAD, CAE and CAM项目地址: https://gitcode.com/GitHub_Trending/tex/text-to-cadtext-to-cad 是一个面向 CAD、CAE、CAM 领域的开源 AI 技能库agent skills library它把 CAD 建模、机器人描述文件、切片打印等工作流封装成可安装的 AI 技能。而支撑这些技能长期稳定演进的正是一套分层清晰、可回归的测试体系。本文带你快速看懂它的测试架构、用例编写约定和 CI 回归流程帮助你为自己的 AI 技能项目搭建同等质量的测试用例。 测试体系全景把skills/当作被测产品在 text-to-cad 的设计哲学里仓库是一个本地工作台workbenchskills/是被测试的产品models/是共享的夹具fixture/产物区。所有测试、样例、生成出的 CAD/机器人描述文件都统一写入models/保证技能脚本、夹具和校验命令使用同一套相对路径。整个测试入口只有一个文件scripts/test/test.sh它按顺序串联三个分层测试脚本顺序脚本覆盖范围1️⃣test-js.shJavaScript 包与 Viewer 测试2️⃣test-python.shPython 包、各技能、服务端测试3️⃣test-global.sh仓库级全局策略测试执行scripts/test/test.sh即完成一次全量回归只改了某个技能时则可以只跑对应分层的脚本实现最小路径验证。 第一层test-js.sh 如何驱动 JavaScript 测试test-js.sh 只做了三件事分别调用三个 npm 包的test脚本packages/cadjs、packages/implicitjs和 CAD Viewerviewer。JS 侧的测试用例遵循统一的约定命名*.test.js或.test.mjs/.test.cjs测试发现逻辑见 run-tests.mjs 的正则/\.test\.[cm]?js$/框架零依赖直接使用 Node 内置的node:testnode:assert/strict例如 index.test.js 用几行断言就锁定了包导出格式glb、stl、3mf这一对外契约环境护栏测试运行器会显式检查运行时版本版本不满足时把话说清楚再退出而不是抛出难懂的报错见 run-tests.mjs。 经验点契约测试contract test是 AI 技能回归测试的核心——技能对外暴露的格式、别名、CLI 参数用最少的断言钉死任何重构一旦破坏契约立刻失败。 第二层test-python.sh 如何组织 Python 技能测试Python 测试是这套体系的重心。所有用例基于标准库unittest由 common.sh 中的run_python_unittest()统一驱动它自动发现目录下的test*.py文件拼好PYTHONPATH后逐个执行测试发现完全靠命名约定test*.py无需额外注册。test-python.sh 依次驱动四个测试面cadgen 共享包测试——STEP/GLB/拓扑等 Python 运行时代码逐技能测试——通过 list-skills.sh 枚举skills/下的每个技能存在对应测试目录就运行实现加技能即加测试的自动化MoveIt2 服务端测试CAD Viewer 后端测试——后端测试与源码同放在viewer/server_py/tests其中test_artifact.py会启动真实子进程再 SIGKILL 它是全仓库唯一的跨进程生成锁覆盖因此必须在 CI 中运行。两个值得借鉴的回归技巧CI 专属的严格模式CADGEN_STRICT_LOCKS1test-python.sh把生产环境仅告警的写锁断言变成测试中的硬失败——生产从不过度报错CI 才是契约的真正执法者测试按被测面分组tests/python/下按skills/技能、packages/包、viewer/服务、global四个维度组织见 CONTRIBUTING.md改哪个面就补哪个面的用例。 第三层全局策略测试与文档检查test-global.sh 运行tests/python/global下的全局策略测试——这些用例不针对某个技能而是守护仓库级规则如技能自包含性任何技能运行时不得依赖其他技能或仓库根模块。此外test-docs.sh 单独驱动文档站检查文档错误同样会阻断回归。✍️ 为 AI 技能编写可回归测试用例四条实操约定命名即发现Python 用例命名为test_xxx.pyJS 用例命名为xxx.test.js放进对应分组目录即可被自动执行零注册成本用例就近分组把用例放到被测面目录下如tests/python/skills/urdf/test_cli.py本地只跑改动的文件./.venv/bin/python -m unittest tests/python/skills/urdf/test_cli.py夹具集中管理测试产物STEP、STL、URDF、DXF……一律写入models/下对应的桶如models/step/parts/my-test避免散装临时目录技能行为变化必补用例迭代循环明确要求当技能行为变化时添加或更新聚焦的夹具/测试让回归可度量见 CONTRIBUTING.md。 CI 回归流程test.yml 做了什么在 GitHub Actions 中test.yml在develop分支及其 PR 上自动运行流程比本地脚本更严格校验develop的符号链接布局用scripts/bundle/bundle.sh --check对照源码检查生成产物是否新鲜打包一份临时生产布局production output在该生产布局上运行文档检查 全部代码测试——测的正是最终发布出去的代码形态。版本元数据检查被刻意放在独立 job中这样即使版本号写错代码测试依然照常运行见 AGENTS.md。 常用测试命令速查目的命令全量回归scripts/test/test.sh只测 JSscripts/test/test-js.sh只测 Pythonscripts/test/test-python.sh只测文档scripts/test/test-docs.sh单个 Python 用例./.venv/bin/python -m unittest tests/python/skills/技能/test_xxx.py单测 Viewernpm --prefix viewer run test更多路径级校验命令汇总在 AGENTS.md 的 Checks 一节。总结text-to-cad 的测试体系给出了 AI 技能项目的回归测试范本单一入口分层执行、命名约定驱动测试发现、契约测试钉死对外接口、夹具集中管理、CI 在生产形态上跑最终测试。把这套约定搬进你的技能库改坏不发现的概率就会大幅降低。【免费下载链接】text-to-cadA library of agent skills for CAD, CAE and CAM项目地址: https://gitcode.com/GitHub_Trending/tex/text-to-cad创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表