输出测试报告
当我们测试完了,肯定要输出测试报告,HTMLTestRunner是Unittest框架下的一个扩展,它用来生成HTML测试报告
- 下载HTMLTestRunner.py文件,地址:http://tungwaiyip.info/software/HTMLTestRunner.html
- 将下载的文件放在Python安装目录下的Lib文件夹中,我的是:D:\Python\Python37\Lib 这个目录
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
(选中该py文件,单击鼠标右键,另存为本地)
- 修改
HTMLTestRunner.py
文件,因为这个库是Python2编写的
第94行 将import StringIO 修改成import io
第539行 将self.outputBuffer = StringIO.StringIO() 修改成self.outputBuffer= io.StringIO()
第631行 将print >> sys.stderr, ‘\nTime Elapsed: %s‘ %(self.stopTime-self.startTime)
修改成print(sys.stderr, ‘\nTimeElapsed: %s‘ % (self.stopTime-self.startTime))
第642行 将if not rmap.has_key(cls):修改成if not cls in rmap:
第766行 将uo = o.decode(‘latin-1‘)修改成uo = e
第772行 将ue=e.decode('latin-1')修改为ue=e
- 导出模块
import HTMLTestRunner
from HTMLTestRunner import HTMLTestRunner
- 测试报告输出路径
time = time.strftime("%Y%m%d%H%M%S")
path = os.path.dirname(os.path.realpath(__file__))
filename = path + '\\' + time + 'Test_Result.html'
- 在测试代码尾部编写HTMLTestRunner方法
fp = open(filename, "wb")
runner = HTMLTestRunner(stream=fp, title=u"MathTest测试报告", description=u"用例执行情况")
runner.run(suite)
fp.close()
我们用上次的工程来进行修改,输出测试报告,代码如下
import os
import time
import unittest
from HTMLTestRunner import HTMLTestRunner
from Test_Case import MathCase
from Test_Case2 import MathCase2
if __name__ == "__main__":
suite = unittest.TestSuite()
"装载测试用例"
suite.addTest(MathCase("test_add"))
suite.addTest(MathCase("test_sub"))
suite.addTest(MathCase2("test_mul"))
suite.addTest(MathCase2("test_div"))
"""
报告时间为当前时间,并给出输出格式
测试路径为当前工程路径
文件命名为路径+\\+当前时间+test_result.html
"""
time = time.strftime("%Y%m%d%H%M%S")
path = os.path.dirname(os.path.realpath(__file__))
filename = path + '\\' + time + 'Test_Result.html'
fp = open(filename, "wb")
runner = HTMLTestRunner(stream=fp, title=u"MathTest测试报告", description=u"用例执行情况")
runner.run(suite)
fp.close()
运行结果
工程目录打开刚输出的测试报告
summary,Failed,All,这三个可以展开查看详细的情况
参考:https://blog.csdn.net/wxy_summer/article/details/52814791