Pytest框架,ids参数用例中文输出乱码问题解决办法
- 问题表现
– 我们在使用pytest测试框架执行自动化测试用例时,ids参数用例描述有中文时控制台打印乱码。
- 报错信息
产生的原因
解决方法
方法一:使用pytest_collection_modifyitems
钩子函数
- 在
conftest.py
文件中,使用pytest_collection_modifyitems
钩子函数对输出的item.name
和item.nodeid
进行重新编码,以确保中文字符能够正确显示。
conftest.py
def pytest_collection_modifyitems(items):
for item in items:
# 重新编码name和nodeid,以正确显示中文字符
item.name = item.name.encode("utf-8").decode("unicode_escape")
item._nodeid = item.nodeid.encode("utf-8").decode("unicode_escape")
方法二:在pytest.ini
中设置配置项
- 通过在
pytest.ini
文件中设置disable_test_id_escaping_and_forfeit_all_rights_to_community_support = True
,可以禁用测试ID的转义,以便在控制台正确显示中文字符。
pytest.ini
[pytest]
disable_test_id_escaping_and_forfeit_all_rights_to_community_support = True