pytest配置文件合集(一)-----------conftest.py应用

配置文件:

配置文件一般存在项目的根目录下,官方文档介绍了四种配置文件,每种文件有各自的用处。

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"代码

pytest配置文件合集(一)-----------conftest.py应用_第1张图片

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")

输入结果:

pytest配置文件合集(一)-----------conftest.py应用_第2张图片

你可能感兴趣的:(python,pytest)