简介:
HTMLTestRunner是Python标准库unittest单元测试框架的一个扩展,用来生成HTML测试报告。
目前官网中只支持python2的版本,可下载虫师的版本,支持python3.
安装方法:
直接将HTMLTestRunner.py文件放到python的lib存放第三方库里。(目前不支持pip安装)
例子:

1 # -*-coding:utf-8-*- 2 3 from demo1 import Count 4 import unittest 5 from HTMLTestRunner import HTMLTestRunner 6 import time 7 8 class TestAdd(unittest.TestCase): 9 """做加法?""" 10 def setUp(self): 11 print('Add Start') 12 def tearDown(self): 13 print('Add End') 14 def test_add1(self): 15 "2+3=?" 16 j = Count(2,3) 17 add = j.add() 18 self.assertEqual(add,5) 19 def test_add2(self): 20 j = Count(5,1) 21 add = j.add() 22 self.assertEqual(add,5,'加错了') 23 24 if __name__ == '__main__': 25 # 把用例集合成一个套件 26 suite = unittest.TestSuite() 27 suite.addTest(TestAdd('test_add1')) 28 suite.addTest(TestAdd('test_add2')) 29 # 使用HTMLTestRunner生成结果报告到'D:/report'文件夹下,名为当前时间+result.html 30 now_time = time.strftime("%Y-%m-%d %H_%M_%S") 31 filename = 'D:\\report\\'+ now_time +'result.html' #假设已新建report文件 32 # 设置HTML的title和概括 33 f = open(filename,'wb') 34 runner = HTMLTestRunner(stream=f, 35 title ='测试报告标题', 36 description='报告概括') 37 runner.run(suite) 38 f.close()
查找最新的测试报告
方法1

1 # -*-coding:utf-8-*- 2 import os 3 4 _dir = r'D:\study\pyproject\Demo1\unit_test' 5 # 获取所有_dir路径下的文件名 6 lists = os.listdir(_dir) 7 # 按时间顺序排列 8 lists.sort(key=lambda fn: os.path.getmtime(result_dir+'\\'+fn)) 9 print("最新的报告文件为:"+ lists[-1]) 10 #连结路径和最新报告文件名 11 file = os.path.join(result_dir,lists[-1]) 12 print(file)
方法2
1 def now_report(report_path): 2 ''' 3 参数report_path为报告所在的目录 4 ''' 5 # 获取所有report_path路径下的文件名生成lst列表 6 lst = os.listdir(report_path) 7 # lst列表每个元素套进参数fn,使key获得每个文件的修改时间,lst.sort再顺序排列 8 lst.sort(key=lambda fn: os.path.getmtime(report_path + "\\" + fn)) # getmtime返回文件的最后修改时间 9 file_new = os.path.join(report_path,lst[-1]) 10 print(file_new) 11 return file_new