# 测试隔离规则 > 权威合同:`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 运行,两套互不接管。