跳到主要内容

测试

测试通过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 目录。在任何网络浏览器中打开 index.html 以交互式地可视化和浏览覆盖率数据。这种交互式可视化使您能够识别未覆盖的代码行,并查看单个文件的覆盖率统计信息。