pytest简易教程(19):parametrize中给用例取别名
pytest简易教程汇总,详见:https://www.cnblogs.com/uncleyong/p/17982846
之前我们分享了fixture中使用ids给用例取别名(详见:https://www.cnblogs.com/uncleyong/p/18020735)
类似的,parametrize中也可以使用ids给用例取别名,从而增加可读性
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : 韧 # @wx :ren168632201 # @Blog :https://www.cnblogs.com/uncleyong/ import pytest data = [ "ren" , "qzcsbj" ] ids = [f "注册用户:{name}" for name in data] @pytest .mark.parametrize( "name" , data, ids = ids) class TestQzcsbj: def test_case( self , name): print (f "name={name}" ) |
结果:中文未正常显示,原因是pytest将ids视为ASCII字符,但ASCII字符不包含中文,所以pytest会将其转换为unicode编码展示
方案一:
在conftest.py中利用pytest提供的hook函数pytest_collection_modifyitems解决unicode编码问题
创建conftest.py
1 2 3 4 5 6 7 8 9 10 11 12 | #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : 韧 # @wx :ren168632201 # @Blog :https://www.cnblogs.com/uncleyong/ def pytest_collection_modifyitems(items): """测试用例收集完成时,将收集到的item的name和nodeid的中文显示在控制台上""" for item in items: item.name = item.name.encode( "utf-8" ).decode( "unicode_escape" ) print (item.nodeid) item._nodeid = item.nodeid.encode( "utf-8" ).decode( "unicode_escape" ) |
结果:
方案二:
创建pytest.ini
1 2 | [pytest] disable_test_id_escaping_and_forfeit_all_rights_to_community_support = True |
__EOF__

本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2022-02-23 答疑记录:jmeter从返回的html中提取指定内容