测试
测试是通过 GitHub actions 自动运行的。有两个工作流程:
第一个工作流程对于所有 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 文件,以交互方式可视化和浏览覆盖率数据。这种交互式可视化允许您识别未覆盖的行,并查看单个文件的覆盖率统计信息。