python unittest要产生一个可看的报告,需要借助一个第三方的包
下载HTMLTestRunner.py 第三方库 ,参考地址:http://tungwaiyip.info/software/HTMLTestRunner.html
是个牛人自己写的,真挺不错的,佩服佩服
下载后,文件拷贝到python工程的目录里,可以引用到就行
使用:
- import lib.HTMLTestRunner
- from testDataDriver import Testdriver
- import time
- import sys,os
- reload(sys)
- sys.setdefaultencoding('utf-8')
-
- def htr():
- runner = lib.HTMLTestRunner
- runner.run(suite)
如果需要指定报告输出的名称和路径,可以按下列方式:
- def htr():
-
- runner = lib.HTMLTestRunner.HTMLTestRunner(stream=fp,title='API_test_'+str(localtimes),description='Report_description')
- runner.run(suite)
报告显示中文乱码问题的解决方式
输出的报告中可能包含中文,需要确定一下HTMLTestRunner.py源文件的编码方式
首先确认在引用HTMLTestRunner的代码文件中设置编码
- import sys
- reload(sys)
- sys.setdefaultencoding('utf-8')
打开HTMLTestRunner.py源文件,找到如下行
-
- if isinstance(o,str):
-
-
-
- else:
- uo = o
- if isinstance(e,str):
-
-
-
- else:
- ue = e
添加utf-8的解码
-
- if isinstance(o,str):
-
-
-
- uo = o.decode('utf-8')
- else:
- uo = o
- if isinstance(e,str):
-
-
-
- ue = e.decode('utf-8')
- else:
- ue = e
ok,按上述方式,中文乱码问题解决,it works