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中,并将此文件放在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")