用途:为 cmux 仓库的改动选择范围化验证、添加行为测试并校验 Swift 测试目标与接线。所有仓库命令只能在可信检出的代码库中运行,即使 verify-local.py --help 和 --list 也会加载仓库代码。
主要命令:python3 scripts/verify-local.py 选择检查并解析变更的 Swift;--all 运行完整 CI 静态方案;--only swift-syntax --swift-changed 解析当前 Swift 改动;--only test-wiring 检查新 Swift 测试文件接线。ui-test 可查看 UI 测试每帧动作;ui-lab.py 可在不构建应用时快速渲染视图为明暗 PNG;run-e2e.sh --scenario ... 用于 CI 驱动端到端。解析检查只做语法解析,不做类型检查或运行测试。--swift-changed 后可加基准 ref;--list 查看其他检查,--help 查看选项。
复现与修复:保留一个会在报告症状上失败的聚焦命令,修复后重跑;安装失败或零测试执行不能证明缺陷。一次只验证一个行为。保留两个提交:先失败的回归测试,再修复,同一命令分别运行并记录 SHA、预期失败与通过结果。仅 CI 复现时用该通道并保留凭据。
测试接线:新增 cmuxTests/*.swift 需在 cmux.xcodeproj/project.pbxproj 中同时有 PBXFileReference 与 Sources 构建阶段成员,未接线会产生误导性的零测试通过。新建、重命名或删除直接文件后运行 ./scripts/sync-test-wiring,--check 只校验不写入;应用源码用 ./scripts/wire-app-sources.py(--check 列出未接线项);UI 测试加 --target cmuxUITests --dir cmuxUITests。CI 的 workflow-guard-tests 仍运行 ./scripts/lint-pbxproj-test-wiring.sh。
测试质量:通过单元、集成、CLI 或端到端路径验证可观察行为;不要仅为镜像实现而断言源码片段、签名、AST 形状或元数据键。Swift 单元/集成目标使用 Swift Testing(import Testing、@Test、@Suite、#expect、#require),UI 测试保持 XCTest/XCUITest。优先参数化测试与标签,需要顺序的套件用 .serialized。应用构建不编译测试目标,需编译相关测试目标并实际执行选定测试。
PR CI:普通 PR CI 已运行改动涉及的套件;full-ci 与 unit-ci 不是评审或合并必需项。