目錄
- 一、conftest.py的特點
- 二、conftest.py的使用場景
- 三、conftest.py的生效范圍
- 四、conftest.py的的scope字段
一、conftest.py的特點
1、可以跨.py文件調(diào)用,有多個.py文件調(diào)用時,可讓conftest.py只調(diào)用了一次fixture,或調(diào)用多次fixture
2、conftest.py與運行的用例要在同一個pakage下,并且有__init__.py文件
3、不需要import導入 conftest.py,pytest用例會自動識別該文件,放到項目的根目錄下就可以全局目錄調(diào)用了,如果放到某個package下,那就在該package內(nèi)有效,可有多個conftest.py
4、conftest.py配置腳本名稱是固定的,不能改名稱
5、conftest.py文件不能被其他文件導入
6、所有同目錄測試文件運行前都會執(zhí)行conftest.py文件
二、conftest.py的使用場景
1、每個接口需共用到的token
2、每個接口需共用到的測試用例數(shù)據(jù)
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("執(zhí)行conftest文件")
basefunc.delfile()
yield
print("執(zhí)行conftest文件")
basefunc.delfile()
那么,在該目錄下的所有的測試用例只會執(zhí)行一次
在所有的用例開始前會執(zhí)行yield前面的代碼
在所有的用例結(jié)束后會執(zhí)行yield后面的代碼
2、如果生效范圍:scope=“module”
# -*- coding:utf-8 -*-
import pytest
from lib import basefunc
@pytest.fixture(scope="module",autouse=True)
def setup_function():
print("執(zhí)行conftest文件")
basefunc.delfile()
yield
print("執(zhí)行conftest文件")
basefunc.delfile()
那么,在該目錄下的每個py文件會執(zhí)行一次
在每個py文件中的用例開始前會執(zhí)行yield前面的代碼
在每個py文件中的用例結(jié)束后會執(zhí)行yield后面的代碼
3、如果生效范圍:scope=“class”
# 生效的范圍,類級別,每個類才會執(zhí)行一次
@pytest.fixture(scope="class",autouse=True)
def setUp():
print("在每個方法前執(zhí)行")
yield
print("在每個方法后執(zhí)行")
那么,在該目錄下的每個類會執(zhí)行一次
在每個類的用例開始前會執(zhí)行yield前面的代碼
在每個類的用例結(jié)束后會執(zhí)行yield后面的代碼
4、如果生效范圍:scope=“function”
@pytest.fixture(scope="function",autouse=True)
def setUp():
print("在每個方法前執(zhí)行")
yield
print("在每個方法后執(zhí)行")
那么,在該目錄下的每個測試函數(shù)會執(zhí)行一次
在每個測試用例開始前會執(zhí)行yield前面的代碼
在每個測試用例結(jié)束后會執(zhí)行yield后面的代碼
以上就是pytest的conftest.py文件的使用講解的詳細內(nèi)容,更多關于pytest conftest.py文件的使用的資料請關注腳本之家其它相關文章!
您可能感興趣的文章:- python pytest進階之conftest.py詳解
- Pytest中conftest.py的用法