中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Pytest中conftest.py怎么用

發布時間:2021-06-28 10:42:39 來源:億速云 閱讀:181 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Pytest中conftest.py怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

什么是conftest.py

我們之前了解了fixture,fixture可以直接定義在測試腳本中,但是有些時候,我們希望一個fixture可以被復用,這就需要對fixture進行集中管理,Pytest使用文件conftest.py集中管理固件.在復雜的項目中,可以在不同的目錄層級定義conftest.py,其作用域為其所在的目錄和子目錄,通常情況下,conftest.py@pytest.fixture()會結合使用,來實現全局的前后置處理。

conftest.py特點

  • conftest.py文件的名稱是固定的,不能修改

  • conftest.py與運行的用例要在同一個pakage下,并且有__init__.py文件

  • 不需要import導入conftest.py文件,pytest用例會自動識別該文件,放到根目錄下可以全局目錄調用,放在某個package下,那就在該package內有效

  • 不同目錄可以有自己的conftest.py,一個項目中可以有多個conftest.py

  • pytest會默認讀取conftest.py里面的所有fixture,所有同目錄測試文件運行前都會執行conftest.py文件

conftest.py用法

在我們實際的測試中,conftest.py文件需要結合fixture來使用,所以fixture中參數scope也適用conftest.py中fixture的特性,這里再說明一下

  • conftest中fixture的scope參數為session,所有的測試文件執行前(后)執行一次conftest.py文件中的fixture。

  • conftest中fixture的scope參數為module,每一個測試.py文件執行前(后)都會執行一次conftest.py文件中的fixture

  • conftest中fixture的scope參數為class,每一個測試文件中的測試類執行前(后)都會執行一次conftest.py文件中的fixture

  • conftest中fixture的scope參數為function,所有文件的測試用例執行前(后)都會執行一次conftest.py文件中的fixture

conftest.py實際案例

我們按照這樣的目錄新建一個項目

Pytest中conftest.py怎么用

在根目錄conftestdemo下

根目錄中的conftest.py文件中,一般寫全局的fixture,比如登錄

conftest.py

import pytest


@pytest.fixture(scope="session")
def login():
    print("***登錄成功,返回用戶名***")
    name = "rockche"
    yield name
    print("***退出登錄***")


@pytest.fixture(autouse=True)
def get_name(login):
    name = login
    print(f"--每個用例都調用外層fixiture:打印用戶name:{name}--")

根目錄下的測試用例

test_1.py

def test_get_name(login):
    name = login
    print("***基礎用例:獲取用戶name***")
    print(f"用戶名:{name}")

運行conftestdemo下的所有用例

run.py

import pytest

if __name__ == '__main__':
    pytest.main(["-s", "../conftestdemo/"])

test_baidu目錄下

配置針對baidu網站的測試用例獨有的fixture

conftest.py

import pytest


@pytest.fixture(scope="module")
def open_baidu(login):
    name = login
    print(f"用戶 {name} 打開baidu")

test_case1.py

def test_case2_01(open_baidu):
    print("搜索pytest")


def test_case2_02(open_baidu):
    print("搜索博客園")

test_cnblogs目錄下

沒有__init__.py文件也沒有conftest.py文件

test_case1.py

def test_no_fixture(login):
    print("沒有__init__文件,直接進入cnblogs", login)

test_taobao目錄下

配置針對taobao網站的測試用例獨有的fixture

conftest.py

import pytest


@pytest.fixture(scope="function")
def open_taobao(login):
    name = login
    print(f"用戶 {name} 進入淘寶")

test_case1.py

class TestTaobao:
    def test_case1_01(self, open_taobao):
        print("選購商品")

    def test_case1_02(self, open_taobao):
        print("進入結算界面")

運行run.py

Pytest中conftest.py怎么用

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

向AI問一下細節

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

AI

宁晋县| 沾益县| 丘北县| 衡阳县| 靖远县| 保山市| 重庆市| 长宁区| 双江| 团风县| 镇巴县| 泰安市| 额敏县| 衢州市| 乃东县| 江达县| 新竹县| 泊头市| 隆尧县| 铜山县| 平湖市| 泰顺县| 大名县| 黄骅市| 固原市| 大埔县| 天门市| 新巴尔虎左旗| 潢川县| 孙吴县| 太仓市| 西宁市| 商水县| 麦盖提县| 桐柏县| 黔西| 通化市| 贡觉县| 泽州县| 隆安县| 墨竹工卡县|