FreeCAD 如何用 FreeCADCmd -t 0 在本地运行 CLI 测试套件验证改动?
FreeCAD 如何用 FreeCADCmd -t 0 在本地运行 CLI 测试套件验证改动【免费下载链接】FreeCADOfficial source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.项目地址: https://gitcode.com/GitHub_Trending/fr/FreeCAD改完 FreeCAD 源码并重新构建后你通常需要一套不需要图形界面的回归手段来确认改动没有破坏核心功能。FreeCADCmd -t 0就是 FreeCAD CI 中用来做这件事的 CLI 测试入口它运行 FreeCAD 注册的命令行CLIPython 测试套件CI 在构建目录和安装目录两个阶段都用同一条命令来验证构建产物。这篇文章说明如何在本地复刻 CI 的这条验证路径先完成配置、构建再在构建目录或安装目录里运行测试并判断结果。前提是你已经能按官方文档完成 FreeCAD 的构建。CI 中测试步骤直接复用构建产物没有单独的测试依赖安装环节Ubuntu 工作流额外用 pip 安装了ifcopenshell0.8.2作为 Python 测试依赖见 sub_buildUbuntu.yml 的 Install FreeCAD Python test dependencies 步骤。确认测试命令的来源CI 是怎么跑的在 sub_buildUbuntu.yml 和 sub_buildPixi.yml 中CLI 测试步骤都长这样- name: FreeCAD CLI tests on build dir if: inputs.testOnBuildDir timeout-minutes: 10 uses: ./.github/workflows/actions/runPythonTests with: testDescription: CLI tests on build dir testCommand: ${{ env.builddir }}/bin/FreeCADCmd -t 0 logFile: ${{ env.logdir }}TestCLIBuild.log reportFile: ${{env.reportdir}}${{ env.reportfilename }}安装目录阶段的步骤则直接调用FreeCADCmd -t 0此时 FreeCAD 已安装FreeCADCmd在 PATH 中。两个要点可以照搬到本地命令本身只有一条FreeCADCmd -t 0其中构建目录阶段使用完整路径builddir/bin/FreeCADCmd -t 0CI 给这一步设置timeout-minutes: 10本地跑的时候如果超过 10 分钟仍无进展值得检查是不是卡在某个测试用例上。-t参数的完整语义在 Application.cpp 中定义(run-test,t, ..., Run one or more test cases (repeat -t for multiple). Use 0 (zero) to run all tests. If no argument is provided then return list of all available tests.)即FreeCADCmd -t 0运行全部 CLI 测试FreeCADCmd -t 测试名运行单个测试可以重复-t跑多个FreeCADCmd -t不带参数只列出所有可用测试不会执行。本地排查某个用例时先用无参的-t列出清单再用-t 名称单独复跑这是 CI 命令行本身支持的用法不引入额外机制。本地运行步骤1. 在构建目录中运行对应 CI 的 CLI tests on build dirCI 使用 Ninja CMake presetrelease配置构建目录sub_buildUbuntu.yml 的 CMake Configure 步骤传入-G Ninja --preset release并附带-DFREECAD_USE_EXTERNAL_COIN_PIVYON -DFREECAD_USE_EXTERNAL_PYCXXON -DFREECAD_USE_EXTERNAL_JSONON构建完成后FreeCADCmd位于builddir/bin/下。如果你本地已经用 CMake 配置并构建过 FreeCAD直接在你的构建目录中执行把builddir替换为你实际的构建目录例如build/release/builddir/bin/FreeCADCmd -t 0这一步在 CMake Install 之前执行验证的是构建目录里的二进制和 CI 的 CLI tests on build dir 阶段一一对应。适合改完代码、跑完构建后立刻做第一轮验证不用等安装。2. 安装后运行对应 CI 的 CLI tests on installCI 在CMake Install之后Ubuntu 工作流使用./.github/workflows/actions/linux/installPixi 工作流使用pixi run install-release再跑一次同一条命令此时FreeCADCmd来自安装后的 PATHFreeCADCmd -t 0如果你本地完成了安装步骤用这条命令验证安装产物如果你只想验证构建目录跳过安装直接用上一节的完整路径命令即可。两个阶段在 CI 中是独立的两次检查本地只需按你实际的产物选其一。3. 判断结果退出码与日志CI 把测试输出写入日志文件TestCLIBuild.log/TestCLIInstall.log步骤失败进程非零退出会让工作流标红这是文档中可见的结果判断方式。本地执行时对应做法builddir/bin/FreeCADCmd -t 0 21 | tee test_cli.log echo exit code: ${PIPESTATUS[0]}退出码为 0 与 CI 步骤通过一致非零退出时回看test_cli.log中对应测试用例的报错段落再用FreeCADCmd -t 测试名单独重跑该用例缩小到具体失败点。CI 没有额外解析日志里的通过/失败计数退出码就是它使用的判定信号本地判断不需要增加别的标准。与 GUI 测试的边界同一条 CI 流水线里还有 GUI 测试步骤命令是xvfb-run python3 ./.github/scripts/run_gui_tests.py builddirUbuntu 构建目录阶段或xvfb-run FreeCAD -t 0Pixi 构建目录阶段需要xvfb-run提供虚拟显示。如果你只改动了与界面无关的代码、或不方便提供 X 环境FreeCADCmd -t 0这条 CLI 路径就是 CI 中不依赖显示服务器的验证手段GUI 测试属于另一条独立任务本文不展开。限制与说明-t 0跑的是全部 CLI 测试不含 GUI 注册测试CI 中 GUI 部分由单独的xvfb-run步骤承担。CI 给 CLI 测试阶段的超时是 10 分钟这是工作流设定的上限而非性能承诺本地机器更慢时以退出码为准不要以时长判定失败。Pixi 工作流中构建目录阶段的 CLI 测试通过shellCmd: pixi run bash -l {0}在 pixi 环境里执行即依赖环境由pixi.toml定义如果你用 pixi 流程构建pixi run configure-release/pixi run build-release在同一个环境里运行测试即可。测试用例名清单以FreeCADCmd -t无参数的实际输出为准本文不预设具体用例列表。【免费下载链接】FreeCADOfficial source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.项目地址: https://gitcode.com/GitHub_Trending/fr/FreeCAD创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Pipecat 语音智能体实战指南:10 分钟跑通实时语音对话机器人(含能力地图与上线清单)

Pipecat 语音智能体实战指南:10 分钟跑通实时语音对话机器人(含能力地图与上线清单)

Pipecat 语音智能体实战指南:10 分钟跑通实时语音对话机器人(含能力地图与上线清单) 【免费下载链接】pipecat Open Source framework for voice agents, multimodal apps, and realtime AI. Maintained by Daily and the community. 项目地…

2026/9/13 20:59:55 阅读更多 →
Python-PCL凹凸包提取实战|全网独家复现平面点云凸/凹多边形构建、Alpha参数自适应调优,助力工业钣金轮廓检测、模具逆向建模、工件尺寸精密测算

Python-PCL凹凸包提取实战|全网独家复现平面点云凸/凹多边形构建、Alpha参数自适应调优,助力工业钣金轮廓检测、模具逆向建模、工件尺寸精密测算

目录 一、研究前言:工业平面点云轮廓提取核心痛点与凹凸包技术价值 二、凹凸包算法核心原理与全流程处理机制详解 2.1 工业点云轮廓重构完整流水线 2.2 凸包与凹包核心原理及差异化特性 2.3 主流轮廓提取算法工业性能横向对比 三、工业级标准化环境部署方案 3.1 专属兼…

2026/9/13 20:59:55 阅读更多 →
A100 80G服务器价格真相:不是GPU报价,而是算力基座配置

A100 80G服务器价格真相:不是GPU报价,而是算力基座配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 20:59:55 阅读更多 →

最新新闻

白银市场分析:散户押注100美元目标可行性探讨

白银市场分析:散户押注100美元目标可行性探讨

1. 白银市场现状与散户押注现象解析2023年白银市场出现了一个引人注目的现象:超过50%的散户投资者正在押注白银价格将在2026年突破100美元/盎司。这一预测数字相当于当前银价的4-5倍,远高于大多数机构分析师的预期。白银作为贵金属和工业金属的双重属性资…

2026/9/13 21:52:22 阅读更多 →
Prompt工程实战:六层模板让AI准确理解你的指令

Prompt工程实战:六层模板让AI准确理解你的指令

1. 先聊聊为什么你和 AI 总是“话不投机半句多”1.1 模型背后的注意力机制,决定了它天生需要“信息增量”我用过不少 AI 工具,也帮团队里很多人调过 Prompt。大部分人对 AI 的第一句抱怨出奇一致:“它怎么就是听不懂我说话?”可你…

2026/9/13 21:52:22 阅读更多 →
AI麦克风如何实现听声辨人:端侧语音分离新范式

AI麦克风如何实现听声辨人:端侧语音分离新范式

1. 为什么“拍打麦风扇狂转”是语音通信的终极地狱模式?你有没有试过在夏天开足马力的台式机前开视频会议?风扇像直升机起飞,键盘敲击声混着机箱共振,同事突然一巴掌拍在麦克风上——“啪!”一声脆响震得耳机发麻。这时…

2026/9/13 21:52:22 阅读更多 →
TradingAgents:多智能体架构驱动的金融决策系统

TradingAgents:多智能体架构驱动的金融决策系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 21:52:22 阅读更多 →
ESP32中断实战指南:IRAM_ATTR、双核亲和性与ISR编写规范

ESP32中断实战指南:IRAM_ATTR、双核亲和性与ISR编写规范

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 21:52:22 阅读更多 →
2026具身智能数据采集平台开源对接五大硬性标准

2026具身智能数据采集平台开源对接五大硬性标准

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 21:51:22 阅读更多 →

日新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/13 0:00:24 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/13 0:00:24 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/13 0:00:24 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/13 0:00:24 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/13 0:00:24 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/13 0:00:24 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/13 16:51:11 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/12 18:29:34 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/12 19:02:44 阅读更多 →