pytest文档21-pytest-html报告优化(nodeid中文显示[\u6350\u52a9\u6211\u4eec]问题解决)

前言

pytest-html报告中当用到参数化时候,获取用例的nodeid里面有中文时候,会显示[\u6350\u52a9\u6211\u4eec]这种编码(再次声明,这个不叫乱码,这是unicode编码)

关于python2和python3里面Unicode编码转化可以参考之前写的一篇【python笔记6-%u60A0和\u60a0类似unicode解码】

本篇以python3.6版本为例

遇到问题

pytest文档21-pytest-html报告优化(nodeid中文显示[\u6350\u52a9\u6211\u4eec]问题解决)

官网文档https://github.com/pytest-dev/pytest-html上说明如下:

注意ANSI代码支持取决于ansi2html包,此包不作为依赖项包含在内。如果你安装了这个软件包,那么ANSI代码会在你的报告中被转换成HTML。

试过了,安装ansi2html包也无法解决问题,于是只有自己解码,重新优化报告内容了

编码转化

相关转化参考这篇【python笔记6-%u60A0和\u60a0类似unicode解码】

# coding:utf-8
# a是str类型
a = r"case/test_houtai.py::TestHouTai::()::test_aboutzenta[\u6350\u52a9\u6211\u4eec]"
print(type(a))
# 转码
print(a.encode("utf-8").decode("unicode_escape"))

运行结果

<class 'str'>

case/test_houtai.py::TestHouTai:

上一篇:nginx+lua的基本原理概念介绍


下一篇:webbrowser selstart selLength