分享Pytest fixture參數(shù)傳遞的幾種方式
1.背景
最近使用Pytest中的fixture和conftest時(shí),遇到需要在conftest中的setup和teardown方法里傳遞參數(shù)。這里記錄下幾種實(shí)現(xiàn)的方式。
2.fixture中參數(shù)傳遞的幾種方式
1)fixture中的函數(shù)返回
conftest.py
@pytest.fixture(scope="class")
def setup_func():
? ? test_data = [{"k1": "v1"}, {"k2": "v2"}]
? ? return test_data
testcase.py
def test_func(setup_func)
? ? print(setup_func)結(jié)果:
執(zhí)行一條用例,輸出:[{"k1": "v1"}, {"k2": "v2"}]
2)與@pytest.mark.parametrize的結(jié)合
conftest.py
@pytest.fixture(scope="class")
def setup_func(request):
? ? print(request.param)
? ? return request.param
testcase.py
test_data = [{"k1": "v1"}, {"k2": "v2"}]
@pytest.mark.parametrize('setup_func', test_data, indirect=True)
def test_func(setup_func)
? ? setup_func結(jié)果:
執(zhí)行兩條用例,分別輸出:{"k1": "v1"}, {"k2": "v2"}
注:
當(dāng) indirect=False 時(shí),“setup_func”被當(dāng)成普通變量;
當(dāng) indirect=True 時(shí),“setup_func”被當(dāng)成函數(shù)執(zhí)行,且 “test_data”作為函數(shù)中的參數(shù)傳遞
3)fixture中的方法嵌套傳遞
confitest.py
@pytest.fixture(scope="class")
def setup_func1():
? ? test_data1 = [{"k1": "v1"}, {"k2": "v2"}]
? ? return test_data1
@pytest.fixture(scope="class")
def setup_func2(setup_func1):
? ? a = setup_func1
? ? b = [{"k11": "v11"}, {"k22": "v22"}]
? ? return (a, b)
testcase.py
def test_aaa(self, setup_func2):
? ? ? ? print(setup_func2)結(jié)果:
執(zhí)行一條用例,輸出:([{'k1': 'v1'}, {'k2': 'v2'}], [{'k11': 'v11'}, {'k22': 'v22'}])
4)測(cè)試方法中產(chǎn)生數(shù)據(jù)后,直接調(diào)用teardown
@python.fixture(scope="class") def teardown_func(): ? ? def _teardown_func(param1, param2): ? ? ? ? func() ? ? return _teardown_func
到此這篇關(guān)于分享Pytest fixture參數(shù)傳遞的幾種方式的文章就介紹到這了,更多相關(guān)Pytest參數(shù)傳遞內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python利用pandas分析學(xué)生期末成績(jī)實(shí)例代碼
pandas是數(shù)據(jù)分析師最常用的工具之一,這篇文章主要給大家介紹了關(guān)于python如何利用pandas分析學(xué)生期末成績(jī)的相關(guān)資料,文中給出了詳細(xì)的實(shí)現(xiàn)方法,需要的朋友可以參考下2021-07-07
Python實(shí)現(xiàn)的查詢mysql數(shù)據(jù)庫并通過郵件發(fā)送信息功能
這篇文章主要介紹了Python實(shí)現(xiàn)的查詢mysql數(shù)據(jù)庫并通過郵件發(fā)送信息功能,可實(shí)現(xiàn)Python針對(duì)mysql的查詢與宕機(jī)信息通過郵件發(fā)送的相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
Python實(shí)現(xiàn)雙因素驗(yàn)證2FA的示例代碼
雙因素認(rèn)證(2FA)作為額外安全層為賬號(hào)登錄添加了第二層身份驗(yàn)證。確保賬號(hào)持有人是可以訪問數(shù)字身份的唯-用戶。如果不使用雙因表認(rèn)證,企業(yè)將承擔(dān)巨大的安全風(fēng)險(xiǎn)。本文將用Python實(shí)現(xiàn)雙因素驗(yàn)證2FA,需要的可以參考一下2022-07-07
Django之使用celery和NGINX生成靜態(tài)頁面實(shí)現(xiàn)性能優(yōu)化
這篇文章主要介紹了Django之使用celery和NGINX生成靜態(tài)頁面實(shí)現(xiàn)性能優(yōu)化,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10

