【python學習】15.參數(shù)化用例

pytest可使用pytest.mark.parametrize 對方法進行參數(shù)化

代碼示例

import pytest

search_list = ['java', 'C#', 'go']


# 單參數(shù)
@pytest.mark.parametrize('name', search_list)
def test_search(name):
    assert name in search_list


# 參數(shù)化傳入多個參數(shù)
# 需注意,參數(shù)化的名字需要同  方法參數(shù)名一致
# 傳入多組參數(shù),使用列表傳入,參數(shù)用列表、或元祖的方式傳入
# 給方法命名,使用ids,ids 參數(shù)個數(shù)和 參數(shù)數(shù)量一致
@pytest.mark.parametrize('test,expected', [('3+5', 7), ('1+9', 10), ('2+5', 7), ('7+9', 16)],
                         ids=['測試1', '測試2', '測試3', '測試4'])
def test_mark_more(test, expected):
    # eval 把字符串轉換成 表達式
    assert eval(test) == expected

# 笛卡爾積參數(shù)
@pytest.mark.parametrize('a',[1,2,3,4],ids=['變量a=1', '變量a=2', '變量a=3', '變量a=4'])
@pytest.mark.parametrize('b',['a','b','c','d'],ids=['變量b=a', '變量b=b', '變量b=c', '變量b=d'])
def test_dikaer(a,b):
    print(f'變量1{a},變量2')

對于ids執(zhí)行后,不顯示中文 的問題,可在testcase目錄下
新建一個文件:conftest.py,加上后,再執(zhí)行就可以顯示中文了
代碼如下,

from typing import List
def pytest_collection_modifyitems(
    session: "Session", config: "Config", items: List["Item"]
) -> None:
    for item in items:
        item.name = item.name.encode('utf-8').decode('unicode-escape')
        item._nodeid = item.nodeid.encode('utf-8').decode('unicode-escape')
image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容