HTMLTestRunner介绍
下载地址:HTMLTestRunner - tungwaiyip's softwarehttp://tungwaiyip.info/software/HTMLTestRunner.html
HTMLTestRunner是一个第三方的类库,用来执行测试用例并生成HTML格式的测试报告,网上有多种不同的实现版本,用法都类似,只是生成的HTML报告样式有差别
注意:下载的文件要与Python的版木兼容(有些版本只支持Python2.x)
可以使用两种模板文件,HTMLTestRunner.py和HTMLTestRunner_PY3.py
HTMLTestRunner.py :样式比较简单,不需要依赖外部JS和CSS文件
HTMLTestRunner_PY3.py :样式比较美观,需要依赖外部JS和CSS文件
测试报告:
一、自带的测试报告:
只有单独运行TestCase得到代码,才会生成测试报告
二、生成第三方的测试报告:
- 获取第三方的测试运行模块,将其放在代码的目录中
- 导包unittest
- 使用套件对象,加载对象去添加用例对象
- 实例化,第三方的运行对象并运行套件对象
注意:由于HTMLTestRunner.py是python2,现在使用是python3,会出现“'str' object has no attribute ‘decode'”一系列报错,此时需修改 HTMLTestRunner.py。
HTMLTestRunner()的方法参数:
def __init__(self, stream=sys.stdout, verbosity=1, title=None, description=None):
stream=sys.stdout,必填,测试报告的文件对象(open ),注意点,要使用wb打开
verbosity=1,可选,报告的详细程度,默认1简略,2详细
titLe=None,可选,测试报告的标题
description=None 可选,描述信息,Python的版本,pycharm版本
步骤如下:
第94行,将import StringlO修改成import io
第539行,将self.outputBuffer = StringlO.StringIO0)修改成self.outputBuffer = io.StringlO(第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
第631行,将print >> 5y.stder 1nTinme Elapsed.%is % (selistopTime-seltstartTime)修改成printisys.stder,1nTime Elapsed:%os % (selisopTime-selfistartTime)
修改完执行代码,例子:
import unittest
from HTMLTestRunner import HTMLTestRunner
suite = unittest.defaultTestLoader.discover('./case', 'test_断言.py')
# HTMLTestRunner()
file = 'report1.html'
with open(file, 'wb') as f:
runner = HTMLTestRunner(f, 2, '测试报告')
runner.run(suite)
结果: