欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python的pytest測試框架中fixture的使用詳解

 更新時間:2023年07月27日 09:06:25   作者:晚風吹兒  
這篇文章主要介紹了pytest中fixture的使用詳解,pytest是一個非常成熟的全功能的Python測試框架,能夠支持簡單的單元測試和復雜的功能測試,還可以用來做selenium/appnium等自動化測試、接口自動化測試,需要的朋友可以參考下

一、fixture定義

fixture是處理前后置處理的,也叫測試固件,只需要使用@pytest.fixture() 即可定義

@pytest.fixture()  # fixture裝飾器
def first(): # 定義一個函數(shù)
    print("setup...") # 函數(shù)內(nèi)容

二、fixture前置處理

定義好fixture函數(shù)后,如何應(yīng)用呢?通常我們只需要在測試函數(shù)中,傳入Fixture的這個函數(shù)名即可

import pytest  # 導入pytest
@pytest.fixture()
def first():
    print("setup...")
def test_pytest(first):  # 定義測試函數(shù),在此處引用fixture函數(shù)名即可
    print("first test")
if __name__ == '__main__':  # 定義主函數(shù)
    pytest.main()  # 調(diào)用pytest

說明:在執(zhí)行test_pytest函數(shù)之前,會先執(zhí)行first函數(shù),因為first是前置函數(shù),會在測試函數(shù)之前執(zhí)行。如果需要每個測試函數(shù)都自動執(zhí)行,則可以設(shè)置autouse的參數(shù)為True,即autouse=True

@pytest.fixture(autouse=True) # 傳入autouse參數(shù)
def first():
    print("setup...")

三、Fixture的作用域

@pytest.fixture()中scope參數(shù)是控制Fixture的作用域的,可根據(jù)實際需要,調(diào)整運行方式,scope支持以下四種作用域,從大到小依次是:

  • session (會話)
  • module (模塊)
  • class (類)
  • function (函數(shù))

fixture默認的scope=function,所以我們不傳的時候,默認對測試函數(shù)生效 將scope指定為class,可以實現(xiàn)每個測試類前執(zhí)行一次 module指的是,在某個py文件執(zhí)行前,執(zhí)行一次,一個py文件就是一個模塊 session是指pytest的會話,即所有的測試執(zhí)行開始到結(jié)束,只會執(zhí)行一次的操作

四、Fixture的全局作用域

如果想在多個py文件中都可以引用這個前置操作,那么可以使用公共文件進行處理,即conftest.py,這個是固定文件名稱,不可修改。 這個文件在pytest中被大量使用,用于定義一些Hook相關(guān)函數(shù)以及注冊全局的Fixture函數(shù)。定義在conftest.py中的Fixture,都是全局的Fixture,可以在多個py文件中去使用

conftest.py

@pytest.fixture(autouse=True) # 傳入autouse參數(shù)
def first():
    print("setup...")

test_first.py

def test_pytest(first):  # 定義測試函數(shù),在此處引用fixture函數(shù)名即可
    print("first test")

五、Fixture的后置處理

fixture的后置處理直接使用yield即可,可以幫助我們來做分割,在yield之前的屬于setup,而之后的就是teardown。

@pytest.fixture()
def first():
    print("setup...")
    yield
    print("teardown...")

在這里插入圖片描述

說明:yield后的內(nèi)容是執(zhí)行完測試用例才會執(zhí)行的,放在最后

到此這篇關(guān)于pytest中fixture的使用詳解的文章就介紹到這了,更多相關(guān)pytest中的fixture內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論