配置文件:
配置文件一般存在项目的根目录下,官方文档介绍了四种配置文件,每种文件有各自的用处。
pytest.ini:主配置文件,最常用,优先匹配配置项
tox.ini :可以理解为pytest.ini的另一种写法,二者选择使用其一即可
setup.cfg
conftest.py:本地的插件库,主要用于存放fixture,其中的hook函数和fixture将作用于该文件所在的目录以及所有子目录
我们只重点学习pytest.ini和conftest.py
1、conftest.py文件特点
- 所有同目录测试文件运行前都会执行conftest.py文件,文件名字是固定不可改变, 不需要import导入
- pytest用例会自动识别conftest.py文件,放到项目的根目录下就可以全局目录调用了,如果放到某个package下,那就在该package内有效,并且该包中有__init__.py文件
- conftest.py文件是单独存放的一个夹具(Fixture)配置文件,通常
conftest.py和@pytest.fixture()结合使用 - 可以跨.py文件调用,有多个.py文件调用时,可让conftest.py只调用了一次fixture,或调用多次fixture
2、优先级问题
fixture的session优先级最高
fixture的class级别高于setup_class,也就是先执行fixture的scope="class"代码
fixture的function级别高于setup,即先执行fixture的scope="function"代码
3、案例
conftest.py文件
import pytest
@pytest.fixture(scope='function',autouse="autouse")
def login1():
print("打印conftest配置文件下scope='function'内容")
return 1234
# print("打印yield返回文件")
@pytest.fixture(scope="session",autouse="autouse")
def logi2():
print("打印conftest配置文件下的scope='session'内容")
@pytest.fixture()
def add():
print("这是conftest配置文件add")
testthree.py文件
class TestThree:
def setup(self):
print("执行测试用例setup开始")
def teardown(self):
print("执行测试teardown结束")
def setup_class(self):
print("行测试模类中执行一次开始setup_class")
def teardown_class(self):
print("执行测试类中执行结束一次teardown_class")
def test_one(self,add):
print("执行测测试用例test_one")
return 123
def test_two(self):
print("执行测试用例two")
assert 4 + 5 == 9
def test_add(self):
print("执行测试用例test_add")
输入结果:



















