最近同事问用HTMLTestRunner生成python+ unittest的HTML报告问题,这里简单整理下:一个简单示例说明HTMLTestRunner的使用。
1、python安装 (linux通常默认装上了,可省略这步,我用的是windows,所以还得安装)
https://www.Python.org/ (python下载地址)
把目录如“D:SoftwarePython2713Scripts”加到系统变量PATH中。(具体变量设置路径(win7):我的电脑->高级系统设置->高级->环境变量->用户变量)
备注:我习惯用python2.7,如果你是python3.X的版本,可能运行下面示例会出错。
2、unittest是python的默认库,不用特意去寻找安装了。
3、安装HTMLTestRunner(不支持pip安装,需要手动安装)
下载地址为:http://tungwaiyip.info/software/HTMLTestRunner.html
下载完后,把对应的HTMLTestRunner.py放到python的库目录Lib下面

4、下面是一个简单的示例demo.py:
#coding=utf-8
#! /usr/bin/env python
# Author:Alwin
# Date:
# STATUS:
import unittest,HTMLTestRunner
class Test_C001(unittest.TestCase):
@classmethod
def setUpClass(cls):
print('This is setupclass')
def setUp(self):
print ('This is setup!')
def test_c001(self):
print ('This is test case 001!')
self.assertEqual(1,1)
def test_c002(self):
print('This is test case 002!')
def test_c003(self):
print('This is test case 003!')
def tearDown(self):
print('This is tearDown!')
@classmethod
def tearDownClass(cls):
print('This is tearDownClass!')
def suite():
suiteTest=unittest.TestSuite()
suiteTest.addTest(Test_C001("test_c001"))
suiteTest.addTest(Test_C001("test_c002"))
suiteTest.addTest(Test_C001("test_c003"))
return suiteTest
if __name__=="__main__":
filepath='D:/report/pyresult.html'
fp=file(filepath,'wb')
#定义测试报告的标题与描述
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'示例测试报告',description=u'执行人:ruink')
runner.run(suite())
fp.close()
在cmd中,使用python命令执行该示例
python demo.py

在指定报告生成路径中D:/report/pyresult.html中找到pyresult.html,打开如图:

上面只是一个很简单的示例,仅为演示使用HTMLTestRunner生成python + unittest的HTML报告。更多高级的应用,请关注我的后续文章^ ^