用途:为 Agent Framework Python 代码库提供编写与运行测试的规范,适用于创建、修改或运行测试时参考。
主要能力与要求:CI 对 Beta 或 Production/Stable 包强制至少 85% 行覆盖率;Alpha 包仅报告,DevUI 与实验性 Lab 包不计入聚合覆盖率。新增代码需检查相关部分是否被测试覆盖并按需补测;修改现有代码需更新或新增测试。测试分两阶段:PR 每次提交只跑单元测试(-m "not integration"),合并时跑含集成测试的完整套件。API 标记弃用后,普通测试应在同一次变更中迁移到替代 API,仅保留验证弃用行为与警告的聚焦测试。
运行方式:uv run poe test 并行运行所有包;uv run poe test -P core 运行指定包;uv run poe test -A 单次 pytest 调用运行所选测试;加 -C 启用覆盖率;-m "not integration" 仅单元测试,-m integration 仅集成测试。也可用 uv run --directory packages/core poe test 直接执行包。
配置与结构:asyncio_mode = "auto",不要用 @pytest.mark.asyncio,用 async def 与 await;默认每测试超时 60 秒;importlib 导入模式;大包用 pytest-xdist(-n auto --dist worksteal)。测试目录不得含 init.py;非核心包测试放在与包名一致的唯一子目录,核心包可直接用 tests/ 加主题子目录。共享 fixture 放 conftest.py,命名具描述性;test_ 前缀仅用于测试文件,优先扩展现有测试文件。
集成测试:需外部服务,须同时加 @pytest.mark.flaky、@pytest.mark.integration 和 @skip_if_..._integration_tests_disabled 装饰器;全为集成测试的文件可用模块级 pytestmark 列表。
CI:python-merge-tests.yml 按路径变更检测拆分并行任务(单元、OpenAI、Azure OpenAI、杂项、Functions、Foundry),核心基础设施变更触发全部集成任务;python-integration-tests.yml 始终运行全部任务。两个工作流须保持同步,新增提供商集成测试时需同时更新两者。
限制:资料未提供具体依赖版本、完整命令参数说明或各包测试数量等细节。