最近同事问用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报告。更多高级的应用,请关注我的后续文章^ ^