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()
测试报告如图所示
