FreeCAD 如何用 FreeCADCmd -t 0 在本地运行 CLI 测试套件验证改动?

发布时间:2026/9/13 20:59:57
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),仅供参考