解决python3 HTMLTestRunner测试报告中文乱码的问题

yipeiwu_com5年前Python基础

使用HTMLTestRunner输出的测试报告中,标题和错误说明的中文乱码。

环境:

python v3.6

HTMLTestRunner v0.8.2

定位问题

刚开始以为是python3对HTMLTestRunner文件兼容的问题。网上搜了一些解决办法基本都是说python2的,对比看了一下,我这边兼容性是可以的。

接下来,查看HTMLTestRunner文件输出,倒着去找,最后问题定位到:

self.stream.write(output)

这一行,print(output)是正常输出中文的,但是write()就是乱码。

其中,stream是运行生成报告时,传的stream参数,stream传空时,stream=sys.stdout,我这边传的是一个打开文件:

outfile = open(filename, 'w')

那么问题就是,outfile.write(output)时中文乱码。

解决方案

* 有两种解决办法 *

1、打开写入文件时设置编码

outfile = open(filename, 'w', encoding='utf-8')

2、打开文件时未设置编码,但写入方式设置为'wb';并且,output字符串encode()成utf-8编码。

以上这篇解决python3 HTMLTestRunner测试报告中文乱码的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python实现查看系统启动项功能示例

本文实例讲述了Python实现查看系统启动项功能。分享给大家供大家参考,具体如下: 一、代码 # -*- coding:utf-8 -*- #! python3 from win32...

django小技巧之html模板中调用对象属性或对象的方法

django小技巧之html模板中调用对象属性或对象的方法

环境:依赖最初test2数据库            python3版本  ...

python3.4用函数操作mysql5.7数据库

本文实例为大家分享了python3.4函数操作mysql数据库的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python # -*- coding:utf-8...

python中元类用法实例

本文实例讲述了python中元类用法,分享给大家供大家参考。具体方法分析如下: 1.元类(metaclass)是用来创建类的类 2.type(object):返回一个对象的类型,与obj...

django 实现电子支付功能的示例代码

django 实现电子支付功能的示例代码

思路:调用第三方支付 API 接口实现支付功能。本来想用支付宝来实现第三方网站的支付功能的,但是在实际操作中发现支付宝没有 Python 接口,网上虽然有他人二次封装的的 Python...