Skip to main content

测试

测试是通过 GitHub actions 自动运行的。有两个工作流程:

  1. build.yml
  2. openai.yml

第一个工作流程对于所有 PR 都是必须通过的(它不会进行任何 OpenAI 调用)。第二个工作流程对于影响 OpenAI 测试的更改是必需的(它实际上会调用 LLM)。第二个工作流程需要批准才能运行。在编写需要 OpenAI 调用的测试时,请使用 pytest.mark.skipif 使其仅在安装了 openai 包时运行。如果此测试需要额外的依赖项,请在 openai.yml 中的相应 Python 版本中安装该依赖项。

确保所有测试都通过,这对于通过 build.yml 的检查是必需的。

在本地运行测试

要运行测试,请安装 [test] 选项:

pip install -e."[test]"

然后,您可以使用以下命令从 test 文件夹运行测试:

pytest test

如果未安装所需的依赖项,可能会自动跳过对 autogen.agentchat.contrib 模块的测试。请查阅每个 contrib 模块的文档以了解所需的依赖项。

有关如何运行笔记本测试的详细信息,请参见此处

测试的跳过标志

  • --skip-openai 用于跳过需要访问 OpenAI 服务的测试。
  • --skip-docker 用于跳过明确使用 Docker 的测试。
  • --skip-redis 用于跳过需要 Redis 服务器的测试。

例如,以下命令将跳过需要访问 OpenAI 和 Docker 服务的测试:

pytest test --skip-openai --skip-docker

覆盖率

您提交的任何代码都不应降低覆盖率。为确保您的代码保持或增加覆盖率,请在安装所需的测试依赖项后使用以下命令:

pip install -e ."[test]"

pytest test --cov-report=html

Pytest 生成了一个代码覆盖率报告,并创建了一个包含 index.html 文件和其他相关文件的 htmlcov 目录。在任何 web 浏览器中打开 index.html 文件,以交互方式可视化和浏览覆盖率数据。这种交互式可视化允许您识别未覆盖的行,并查看单个文件的覆盖率统计信息。