HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展,它可以生成 HTML测试报告。
1.安装HTMLTestRunner:
首先要下载 HTMLTestRunner.py 文件,将下载的文件放入…\python\Lib目录下
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
说明:官网的HTMLTestRunner是python2语法写的,由于我们使用的是python3,就需要将 HTMLTestRunner.py改成python3的语法。
修改汇总为:
第94行,将import StringIO修改成import io
第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()
第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:
第766行,将uo = o.decode('latin-1')修改成uo = e
第775行,将ue = e.decode('latin-1')修改成ue = e
第631行,将print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))
2.实践
在 “学习五" 中,我们学习了Unittest这个框架的简单使用,现在我们只需要修改 “学习五” 中的 ”主程序“ 即可
import os
#测试文件mysmoketest.py
from selenium import webdriver
import HTMLTestRunner
import string
import unittest
from mytest1 import mytest1class
from mytest2 import mytest2class
dir=os.getcwd()
outfile=open(dir+"\myreport.html","wb+") #生成html的存放路劲及名字
mytest1=unittest.TestLoader().loadTestsFromTestCase(mytest1class)
mytest2=unittest.TestLoader().loadTestsFromTestCase(mytest2class)
alltest=unittest.TestSuite([mytest1,mytest2])
#修改前的代码
#unittest.TextTestRunner().run(alltest)
#修改后的代码
runner=HTMLTestRunner.HTMLTestRunner(stream=outfile,
title="my test report",
description='smoke tests'
)
runner.run(alltest)
效果:生成的html用浏览器打开,detail是查看该类中测试详情,每个测试用例后面的pass/false都可以点开查看详情。