pytest执行用例时,如何显示用例标题

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中含有中文,可能会出现下图情况)

pytest执行用例时,如何显示用例标题

 

 解决中文编码的问题,需要将下面的代码复制到conftest.py中,并将此文件放在tests目录下即可

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

pytest执行用例时,如何显示用例标题

 

pytest执行用例时,如何显示用例标题

上一篇:GridView 导出到 Word/Excel/PDF/CSV


下一篇:5、分区格式化、压缩、挂载、解压 学习笔记