13.5 实战:MiniHarness 完整测试

本节为 MiniHarness 构建金字塔型测试套件:单元(快、多)→ 集成(中等) → E2E(慢、少) → 性能(持续监控)。

完整代码见 lab/tests/,本节聚焦测试策略与关键用例。

13.5.1 测试框架与固件

pytest 固件提供隔离的测试环境与可复用数据。两个核心固件:

@pytest.fixture
def test_data_dir():
    """临时目录(自动清理)"""
    with tempfile.TemporaryDirectory() as tmpdir:
        yield tmpdir

@pytest.fixture
def miniharness(test_data_dir):
    """Harness 实例"""
    return SecureMiniHarness(base_path=test_data_dir)

完整实现参见 lab/tests/conftest.py

13.5.2 单元测试:路径校验与命令检测

单元测试测试最小的可测试单元(函数/类)。路径校验的关键用例:

命令检测的关键用例:

关键原则:多个小的、独立的测试,而非一个巨大的测试。

完整实现参见 lab/tests/test_unit.py

13.5.3 集成测试:权限与护栏流程

集成测试测试多个组件的协作。权限 + 护栏的集成:

完整实现参见 lab/tests/test_integration.py

13.5.4 端到端测试:多步工作流

E2E 测试测试真实用户工作流。文件分析流程:

并发工作流:

完整实现参见 lab/tests/test_e2e.py

13.5.5 性能基准:延迟与吞吐

性能测试衡量系统能力指标。延迟基准:

吞吐基准:

完整实现参见 lab/tests/test_performance.py

13.5.6 运行与覆盖率

命令:

目标覆盖率:>80%。参见 lab/tests/conftest.py

13.5.7 总结

MiniHarness 测试策略:

层级
数量
速度
成本
示例

单元

100+

<1ms

路径校验、命令检测

集成

20+

10-100ms

权限+护栏流程

E2E

5-10

100-1000ms

完整工作流

性能

3-5

持续

延迟、吞吐基准

金字塔形测试:快速反馈 (单元) → 保证集成真实验证 (E2E) → 性能监控

最后更新于