微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

复制代码

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐