pytestconftest.py⽂件的使⽤讲解
⽬录
⼀、conftest.py的特点
⼆、conftest.py的使⽤场景
三、conftest.py的⽣效范围
四、conftest.py的的scope字段
⼀、conftest.py的特点
1、可以跨.py⽂件调⽤,有多个.py⽂件调⽤时,可让conftest.py只调⽤了⼀次fixture,或调⽤多次fixture
2、conftest.py与运⾏的⽤例要在同⼀个pakage下,并且有__init__.py⽂件
3、不需要import导⼊ conftest.py,pytest⽤例会⾃动识别该⽂件,放到项⽬的根⽬录下就可以全局⽬录调⽤了,如果放到某个package下,那就在该package内有效,可有多个conftest.py
4、conftest.py配置脚本名称是固定的,不能改名称
5、conftest.py⽂件不能被其他⽂件导⼊
6、所有同⽬录测试⽂件运⾏前都会执⾏conftest.py⽂件
⼆、conftest.py的使⽤场景
1、每个接⼝需共⽤到的token
2、每个接⼝需共⽤到的测试⽤例数据
3、每个接⼝需共⽤到的配置信息
三、conftest.py的⽣效范围
1、⽐如下⾯的⽰例,我的conftest⽂件在pytest2的⽬录下,那么pytest2这个⽬录下的所有的城市⽤例都可以使⽤conftest⽂件
2、⽐如下⾯的⽰例的,我的conftest⽂件在test_suit_01⽬录下,那么test_suit_01⽬录下的所有的测试⽤例都可以使⽤这个conftest⽂件
四、conftest.py的的scope字段
1、如果⽣效范围:scope=“session”
# -*- coding:utf-8 -*-
import pytest
from lib import basefunc
@pytest.fixture(scope="session",autouse=True)
def setup_function():
print("执⾏conftest⽂件")
basefunc.delfile()
yield
print("执⾏conftest⽂件")
basefunc.delfile()
那么,在该⽬录下的所有的测试⽤例只会执⾏⼀次
在所有的⽤例开始前会执⾏yield前⾯的代码
在所有的⽤例结束后会执⾏yield后⾯的代码
2、如果⽣效范围:scope=“module”
# -*- coding:utf-8 -*-
import pytest
from lib import basefunc
@pytest.fixture(scope="module",autouse=True)
def setup_function():
print("执⾏conftest⽂件")
basefunc.delfile()
yield
print("执⾏conftest⽂件")
basefunc.delfile()
那么,在该⽬录下的每个py⽂件会执⾏⼀次
在每个py⽂件中的⽤例开始前会执⾏yield前⾯的代码
在每个py⽂件中的⽤例结束后会执⾏yield后⾯的代码
3、如果⽣效范围:scope=“class”
# ⽣效的范围,类级别,每个类才会执⾏⼀次
@pytest.fixture(scope="class",autouse=True)
def setUp():
print("在每个⽅法前执⾏")
yield
print("在每个⽅法后执⾏")
那么,在该⽬录下的每个类会执⾏⼀次
在每个类的⽤例开始前会执⾏yield前⾯的代码
在每个类的⽤例结束后会执⾏yield后⾯的代码
4、如果⽣效范围:scope=“function”pycharm安装教程和使用
@pytest.fixture(scope="function",autouse=True)
def setUp():
print("在每个⽅法前执⾏")
yield
print("在每个⽅法后执⾏")
那么,在该⽬录下的每个测试函数会执⾏⼀次
在每个测试⽤例开始前会执⾏yield前⾯的代码
在每个测试⽤例结束后会执⾏yield后⾯的代码
以上就是pytest的conftest.py⽂件的使⽤讲解的详细内容,更多关于pytest conftest.py⽂件的使⽤的资料请关注其它相关⽂章!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论