测试与验证¶
本文说明如何运行现有测试集、添加新的测试、使用示例进行烟雾测试,以及在 CI 中集成测试执行。示例命令覆盖 Windows(PowerShell)、Linux 和 macOS。
前置条件¶
- Python 3.8 或更高版本
- Git
- 已克隆并可用的 Cullinan 仓库(环境准备可参考
docs/build_run.md)
运行测试集¶
在以可编辑模式安装 Cullinan 之后(参见 docs/build_run.md),可以使用 pytest 运行测试。
在所有平台上:
pytest -q
如果倾向于通过 Python 模块方式调用,也可以使用:
python -m pytest -q
在 Windows 上,常见的做法是使用 py 启动器:
py -3 -m pytest -q
运行单个测试模块¶
要运行单个测试文件(例如 tests/test_core_injection.py):
在所有平台上:
pytest tests/test_core_injection.py -q
或使用 Python 模块方式:
python -m pytest tests/test_core_injection.py -q
添加新测试¶
在为新特性或缺陷修复添加测试时,建议遵循以下原则:
- 将测试文件放置在
tests/目录下。 - 使用具有描述性的测试名称,并将相关测试组织在同一模块中。
- 优先采用
pytest风格的测试(函数或测试类),与现有测试集保持一致。 - 确保测试具有确定性,不依赖外部服务,除非明确标注。
使用示例进行烟雾测试¶
Cullinan 在 examples/ 目录下提供了可运行示例,可作为烟雾测试使用。
示例:Hello HTTP¶
在 Windows(PowerShell)中:
python examples\hello_http.py
在 Linux / macOS 中:
python examples/hello_http.py
然后在浏览器中访问 http://localhost:4080/hello,验证服务是否正常响应。
示例:中间件演示¶
在 Windows(PowerShell)中:
python examples\middleware_demo.py
在 Linux / macOS 中:
python examples/middleware_demo.py
日志输出将展示中间件和注入的服务如何参与请求处理。具体时间戳和 ID 会因运行环境不同而有所差异。
在 CI 中集成测试¶
在 CI 流水线中,通常需要执行以下步骤:
- 准备 Python 运行环境。
- 以可编辑模式安装依赖(可选安装开发额外依赖)。
- 使用
pytest运行测试集。
bash 风格的典型命令序列(可根据 CI 系统进行调整):
python -m pip install -U pip
pip install -e .[dev]
pytest -q
在基于 Windows 的 CI 环境中使用 PowerShell 时,可使用类似命令:
python -m pip install -U pip
pip install -e .[dev]
py -3 -m pytest -q
可根据 CI 提供商与具体环境调整命令与选项。