Pytest框架 — 09、Pytest的conftest.py文件
1、conftest.py介绍
conftest.py
是pytest
框架的一种固定写法,把fixture
或者自己定义的插件写到这个文件里就会自动去调用。我们前面都是将fixture
写到测试用例文件里,在实际工作中更推荐写到conftest.py
文件中,这样更加灵活,易维护。
2、conftest.py的特点
conftest.py
的文件名是固定的,不能修改- 可以通过
conftest.py
实现共享fixture
conftest.py
需要放到包内,即文件夹必须有__init__.py
文件conftest.py
文件中的fixture
和自定插件在使用时不需要import
,pytest
会自动查找
3、conftest.py文件的使用
- 第一步:在项目根目录或者包中创建
conftest.py
import pytest
@pytest.fixture()
def conftest_fixture():
print("fixture前置")
yield
print("fixture后置")
- 第二步:在测试用例文件中使用
def test_case(conftest_fixture):
print("测试用例")
"""
执行结果
conftest_demo/test_case.py::test_case fixture前置
测试用例
PASSEDfixture后置
"""
4、conftest.py的作用域
- 在根目录创建
conftest.py
文件,作用范围为所有测试模块 - 在单独测试目录中创建
conftest.py
文件,作用范围为该目录 - 测试根目录和子目录中都有
conftest.py
文件,且存在同名fixture
,则在子目录下的测试用例使用的是子目录conftest.py
中的fixture
总结来说,conftest.py文件可以作用于同级以及以下的模块。