在使用pytest-html插件时,有时我们的测试用例名称或者参数是 中文时,在测试报告中显示的内容会出现编码异常。 出现这个问题的原因是pytest-html默认对节点ID进行了utf-8和unicode编码转化,而我们在控制台输出的时候 需要增加 转码操作,那么久问题来了,出现重复转码, 所以显示出现所谓的乱码。
解决方法也很简单,只需要把源码中的 转码过程禁用掉即可。
代码位置:
python环境\venv\Lib\site-packages\pytest_html\plugin.py
self.test_id = report.nodeid.encode("utf-8").decode("unicode_escape")
执行后的结果就是这样的:
要解决这个问题的办法很简单,只需要将plugin.py中的上面这段代码改成以下这样就可以解决了:
self.test_id = report.nodeid