使用HTMLTestRunner生成python + unittest的测试报告

最近同事问用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下面

用HTMLTestRunner生成python + unittest的测试报告

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

用HTMLTestRunner生成python + unittest的测试报告

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

用HTMLTestRunner生成python + unittest的测试报告

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



留言