# 测试双轨:Pester 是单元面,零依赖套件是冒烟与 5.1 入口 两套套件一度覆盖同一批行为(`tests/Run-Tests.ps1` 96 个用例与 Pester 的 129 个 `It` 逐节 对应)。留下两套完整副本是纯维护税,但**只留 Pester 也不行**:`.tools/` 是 gitignore 的, 一台新克隆、没网、或只有 5.1 的机器上 `Install-TestDependencies.ps1` 拉不到 Pester。 分工: - **Pester 套件**(`tests/*.Tests.ps1`)= 单元面,用 `Mock` / `InModuleScope` 测私有函数。 - **零依赖套件**(`tests/Run-Tests.ps1`)= 关键冒烟:清单与名录解析、归档命名、排除翻译、 manifest 往返、原子写与运行锁。只要 PowerShell 与 7z,两个版本都能跑。 - **`tests/Run-E2E.ps1`** = 端到端:真的调用 7z 打包、删源、恢复、逐字节对拍。 - **`tests/Run-RealSmoke.ps1`** = 拿**真实清单与真实归档**跑只读冒烟(`-DryRun` / `-VerifyOnly`,并用 manifest 的 SHA256 证明一个字节都没写)。 - **`test.ps1`** = 唯一入口,把上面几层在 7 与 5.1 上各跑一遍。 最后那个"真实清单冒烟"不是锦上添花:清单里 24 条把方向标记贴在目标上(`+WindowsTerminal`), 而解析器当时只认独立记号 —— 于是那些条目被当成"名叫 +WindowsTerminal 的软件名"、静默记成 `missing-source` 跳过,**备份照常退出 0,所有夹具测试全绿**。只有拿真实清单跑一遍才看得见。