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

yipeiwu_com7年前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+matplotlib绘制简单的海豚(顶点和节点的操作)

python+matplotlib绘制简单的海豚(顶点和节点的操作)

海豚 本文例子主要展示了如何使用补丁、路径和转换类绘制和操作给定的顶点和节点的形状。 测试可用。 import matplotlib.cm as cm import matplotl...

Python pandas实现excel工作表合并功能详解

Python pandas实现excel工作表合并功能详解

import os,pandas as pd,re #1.获取文件夹下要合并的文件名 dirpath = '文件夹地址' #工作表3特殊处理 需要开始下标和结束下标 begin =...

Django Rest framework频率原理与限制

Django Rest framework频率原理与限制

前言 开发平台的API接口调用需要限制其频率,以节约服务器资源和避免恶意的频繁调用. DRF就为我们提供了一些频率限制的方法. DRF中的版本、认证、权限、频率组件的源码是一个流程,且...

使用Python解析JSON数据的基本方法

Python的json模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps() 和 json.loads() , 要比其他序列化函数库如pic...

python安装requests库的实例代码

requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装 pip install requests 安装完...