SuperAPI AI 工具集

slow-tests

测试与质量

查看项目

更新于 10-16 06:43

技能介绍

用途:普通 pytest(及 make test)只跑快速测试套件,slow-tests 用于启用并运行被 tests/conftest.py 中标志位门控的四类测试;未启用的门控测试显示为 skipped,运行仍返回绿色,因此需查看跳过汇总确认测试真的执行了。PR CI 几乎不运行这些测试,定时任务会以 pytest --runslow --runapi 对 main 运行。

主要能力与用法:

  • slow 类:标志 --runslow,测试带 @pytest.mark.slow,通常需要 Docker,有时还需 provider key。
  • api 类:标志 --runapi,由 skip_if_no_<provider> 装饰器添加 api 标记,需要对应 provider 的密钥或选择加入变量。
  • flaky 类:标志 --runflaky,测试带 @pytest.mark.flaky。
  • trio 类:标志 --runtrio,每个异步测试自动获得 [trio] 变体,需单独一次 pytest 调用,只运行 trio 变体。 标志可组合,但 --runtrio 必须单独运行。按改动范围选择测试,例如改 provider 代码用 pytest --runapi --runslow tests/model/providers/test_<provider>*.py,改工具或沙箱用 pytest --runslow -m slow tests/tools/ -x。

限制与注意:provider 密钥多数为 <PROVIDER>_API_KEY(如 OPENAI_API_KEY、ANTHROPIC_API_KEY),Bedrock 和 Vertex 用 ENABLE_BEDROCK_TESTS、ENABLE_VERTEX_TESTS。LiteLLM proxy 测试需本地已有 ghcr.io/berriai/litellm:main-latest,密钥与团队别名测试还需 postgres:16。@skip_if_no_docker 只检查 docker 二进制存在,不检查守护进程是否运行,Docker 未启动时测试会失败而非跳过。本地运行不设 --timeout,异步测试每次尝试有 5 分钟超时;若挂起可用 --timeout=<seconds>。其余细节资料暂未提供。