muse-agent-example/.agent/rules/测试隔离.md
zizi cf0f4fb985 W20–W24:保存知识方法、迁移框架、审校修订与案例行为的集成成果
接续 88dd570,保存 W20–W24 已实现的共享接口、业务入口、迁移、工作台、测试与文档。
W20/W22/W23 保持 in_progress,W21/W24 保持 verified;此提交不宣称方法或规则正式启用、多轮返修、真实角色评测完成。

W25 新增实验、标定、逐调用交付与角色执行及其迁移/测试/索引留在实施工作树,原有私人和旧实现保留项不纳入。

验证:离线 571、前端 33 通过;PG 469 项通过、2 项浏览器未启用,2 项误带入的 W25 用例已移出本提交;最终任务与交付边界 37 项通过。make 检查、最终类型、84 项资源及 diff 检查通过。未重跑浏览器或 Pi 宿主,不以合成调用认证外部模型效果。
独立整体审查四维通过;证据保存在 R2-20260909/提交W20-W24。
2026-09-13 16:24:42 +08:00

1.9 KiB
Raw Blame History

测试隔离规则

权威合同:docs/系统架构/新版设计/验证设计/测试用例重写.md、改造计划/执行与验收.md;机械门禁:tests/conftest.py(OS 进程隔离 + 用例选择 + 全跳过守卫)、工具/维护索引.py。

  1. 默认离线:默认测试进程由 macOS sandbox 或 Linux seccomp 禁止外部连接,覆盖收集阶段、数据库驱动及其子进程;防护不可用时失败,不退回无防护执行。显式外部用例使用 --外部环境 与环境标记选择。
  2. 显式外部环境:需要隔离 PostgreSQL 的用例标记 数据库 并使用 隔离数据库URL 夹具;缺 MUSE_TEST_DATABASE_URL 时直接失败,不跳过或回退旧库。 实际Pi循环另标记宿主,通过make 宿主测试显式提供固定Node与Pi包路径;普通数据库测试剔除此标记。宿主验证使用合成提供方,不等于真实模型验证。
  3. 用例身份:完整 case_id 与清单中的实际文件、符号及参数行绑定,不靠名称后缀匹配;pytest --case TC-… 选择用例,--case 'TC-…[参数ID]' 选择参数行。同符号承接多个 ID 时必须分别绑定无交叠参数。未知 ID、目标缺失与冒用均失败;Junit 留存完整 ID 和参数 ID。
  4. 可判定性:用例体内必须有 assert/raise/fail/skip/xfail;纯 print 用例被索引检查在执行前拦截。
  5. 空收集不通过:零收集(退出码 5)、全跳过(守卫改写退出码 5)、超时与失败都如实呈现;不得以返回码 0 掩盖。
  6. 替身显式标记:协议替身、模型替身、宿主替身必须在用例名或文档串标明;替身通过不宣称真实链路通过。
  7. 新旧收集分离:新用例只放 tests/单元|契约|集成|架构|迁移|端到端/;旧测试树由 .venv-旧 与旧 harness 运行,两套互不接管。