# test
## 职责
围绕测试的命令。运行本地测试套件,解析输出,生成摘要报告。
## 动机
当前测试分散在多个框架和目录中:Rust 用 `cargo test`,Python 用 `pytest`,集成测试在 `integrated_tests/`。开发者需要分别执行、分别阅读输出、手动汇总结果。
`test` 提供一个统一的入口,把碎片化的测试运行统一为一次命令、一份报告。
## 设计
本地运行,不依赖网络。扫描项目中的测试目录,根据语言自动选择测试框架。
### 扫描的测试目标
| Rust 单元测试 | `cargo test` | `src/` |
| Rust 集成测试 | `cargo test --test *` | `tests/` |
| Python 测试 | `pytest` | `tests/python/` |
| 集成测试 | `pytest` | `integrated_tests/` |
### 输出
- 总测试数 + 通过/失败/跳过统计
- 失败用例列表(文件 + 行号 + 错误信息)
- 运行耗时
- 变更对比(操作前后测试结果的变化)
### 过滤
| `--rust` | 仅运行 Rust 测试 |
| `--python` | 仅运行 Python 测试 |
| `--integration` | 仅运行集成测试 |
| `--name <pattern>` | 按测试名称过滤 |
| `--path <path>` | 按文件路径过滤 |
### 风格
与 `release` 命令组一致:Rust 实现、无副作用、原子操作。