分享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-07Python實(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-05Python實(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-07Django之使用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