conftest.py 是 pytest 框架中的一个特殊文件。它允许你为测试提供自定义的配置和钩子函数。以下是 conftest.py 的主要作用:
提供全局配置:你可以在 conftest.py 中定义全局的配置,然后在多个测试文件中重用这些配置。
定义钩子函数:钩子函数是 pytest 的一个重要特性,它允许你在测试的各个阶段插入自定义的逻辑。例如,你可以在 conftest.py 中定义一个钩子函数,以便在每个测试用例执行前后做一些自定义的操作。
动态修改测试:你可以根据 conftest.py 中的某些条件动态地选择要运行的测试用例或修改它们的参数。
插件和扩展:conftest.py 是 pytest 插件和扩展的理想位置。你可以在 conftest.py 中编写自定义的插件或扩展,以扩展 pytest 的功能。
控制测试环境:通过 conftest.py,你可以控制测试环境的设置和清理,例如设置环境变量、创建临时文件等。
conftest.py的作用域
在根目录创建conftest.py文件,作用范围为所有测试模块
在单独测试目录中创建conftest.py文件,作用范围为该目录
测试根目录和子目录中都有conftest.py文件,且存在同名fixture,则在子目录下的测试用例使用的是子目录conftest.py中的fixture
总结来说,conftest.py文件可以作用于同级以及以下的模块。
conftest.py的特点
conftest.py的文件名是固定的,不能修改
可以通过conftest.py实现共享fixture
conftest.py需要放到包内,即文件夹必须有__init__.py文件
conftest.py文件中的fixture和自定插件在使用时不需要import,pytest会自动查找