1. 程式人生 > 其它 >pytest執行用例時,如何顯示用例標題

pytest執行用例時,如何顯示用例標題

當用例非常多時,用uniitest框架排序會亂,系統會根據1**,2**的順序執行,導致測試用例執行錯誤,所以我們推薦使用pytest執行。

但是pytest執行,用例標題預設是引數化中的引數名,此種顯示方法不明瞭直觀。

如何讓標題顯示用例設計中的標題?

@pytest.mark.parametrize()給了另一個引數 ids
@pytest.mark.parametrize(
"test_info", test_data, ids=[test_data[i]["title"] for i in range(len(test_data))]
)
使用列表推導式動態獲取所有用例的title
執行結果如下:(如果你的title中含有中文,可能會出現下圖情況)

解決中文編碼的問題,需要將下面的程式碼複製到conftest.py中即可

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")