SuperAPI AI 工具集

pydantic-ai-testing

测试与质量

查看项目

更新于 10-15 21:39

技能介绍

用途:为 PydanticAI 智能体编写测试,避免真实 API 调用,或录制回放真实交互。

主要能力:

  1. TestModel:确定性测试。可用 custom_output_text 指定文本输出,custom_output_args 指定结构化输出,seed 保证随机可复现,call_tools 强制调用指定工具。
  2. agent.override 上下文管理器:在测试中统一替换 model 与 deps,例如 with agent.override(model=TestModel(), deps=mock_deps)。
  3. FunctionModel:完全自定义模型逻辑,函数接收 messages 与 AgentInfo,返回 ModelResponse,可返回 TextPart 或 ToolCallPart 模拟工具调用。
  4. VCR cassettes:用 @pytest.mark.vcr 回放 tests/cassettes/ 下的 YAML 录制;录制或更新用 uv run pytest --record-mode=rewrite。
  5. 内联快照:用 inline_snapshot 的 snapshot() 断言输出,更新用 uv run pytest --inline-snapshot=fix。
  6. 工具与依赖测试:用 TestModel(call_tools=[...]) 验证工具被调用,用 AsyncMock 等模拟 deps。
  7. capture_run_messages 捕获一次运行中的全部消息。

使用方式:在 pytest 中运行,典型配置 testpaths 与 asyncio_mode = "auto";命令如 uv run pytest tests/test_agent.py -v。录制或修复会改写磁盘文件,需按顺序执行:先无标志回放通过,锁定范围,再单条命令录制或修复,最后无标志复跑并检查 git diff。

适用场景:智能体单元测试、模拟 LLM 响应、录制真实 API 交互、验证工具调用与依赖注入。

限制:资料未提供安装方式、版本要求、收费信息及对各模型平台的支持范围。