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