溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在pytest中使用conftest.py文件

發布時間:2021-03-09 17:19:07 來源:億速云 閱讀:409 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關如何在pytest中使用conftest.py文件,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

一、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文件

如何在pytest中使用conftest.py文件

2、比如下面的示例的,我的conftest文件在test_suit_01目錄下,那么test_suit_01目錄下的所有的測試用例都可以使用這個conftest文件

如何在pytest中使用conftest.py文件

四、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”

@pytest.fixture(scope="function",autouse=True)
def setUp():
    print("在每個方法前執行")
    yield
    print("在每個方法后執行")

關于如何在pytest中使用conftest.py文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女