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

Python的pytest測(cè)試框架中fixture的使用詳解

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

一、fixture定義

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

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

二、fixture前置處理

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

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

說(shuō)明:在執(zhí)行test_pytest函數(shù)之前,會(huì)先執(zhí)行first函數(shù),因?yàn)閒irst是前置函數(shù),會(huì)在測(cè)試函數(shù)之前執(zhí)行。如果需要每個(gè)測(cè)試函數(shù)都自動(dòng)執(zhí)行,則可以設(shè)置autouse的參數(shù)為T(mén)rue,即autouse=True

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

三、Fixture的作用域

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

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

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

四、Fixture的全局作用域

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

conftest.py

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

test_first.py

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

五、Fixture的后置處理

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

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

在這里插入圖片描述

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

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

相關(guān)文章

最新評(píng)論