Python单元测试框架unittest知识<4>

168 阅读1分钟
原文链接: zhuanlan.zhihu.com

Unittest批量运行及报告产生

同JUnit一样,unittest也可以进行批量测试,并且可以在测试完毕形成一个HTML格式的测试报告。为了实现HTML格式的测试报告,可以先到http://tungwaiyip.info/software/HTMLTestRunner.html下载HTMLTestRunner.py文件放入到%PYTHON_HOME%\Lib\目录下。如果使用的是Python2.X系列就不需要进行修改,Python3.X系列请作如下修改。

94行

importStringIO

改为

importio

539行

self.outputBuffer=StringIO.StringIO()

改为

self.outputBuffer=io.StringIO()

631行

print>>sys.stderr,'\nTimeElapsed:%s'%(self.stopTime-self.startTime)

改为

print(sys.stderr,'\nTimeElapsed:%s'%(self.stopTime-self.startTime))

642行

ifnotrmap.has_key(cls):

改为

ifnotclsinrmap:

766行

uo=o.decode('latin-1')

改为

uo=o

772行

ue=e.decode('latin-1')

改为

ue=e

下面是unittest批量运行及报告产生的代码。

案例:unittest批量运行及报告产生

#!/usr/bin/envpython

#coding:utf-8

importunittest

fromHTMLTestRunnerimportHTMLTestRunner#导入HTMLTestRunner

test_dir='./'#测试的工作目录

discover=unittest.defaultTestLoader.discover(test_dir,pattern="*Test.py")#"*Test.py"为测试的文件,支持正则表达式

if__name__=='__main__':

runner=unittest.TextTestRunner()#运行符合条件的测试文件

#以下用于生成测试报告

fp=open("result.html","wb")#result.html为测试报考名

runner=HTMLTestRunner(stream=fp,title='测试报告',description='测试用例执行报告')

runner.run(discover)

fp.close()

测试报告如图所示