使用HTMLTestRunner运行测试套件,自动生成html测试报告:
1 import unittest, HTMLTestRunner, sendmail_html
2 import time, os
3
4 case_dir = 'D:\pywork\pyworkspace\yzwx_selenium\batch_case\test_cases'
5 t = time.strftime("%Y%m%d_%H%M%S", time.localtime())
6 html_name = 'D:\test_data\auto_test_result\result_' + t + '.html'
7 result_dir = 'D:\test_data\auto_test_result'
8
9
10 def suites_run_html():
11 '''使用HTMLTestRunner运行测试套件,自动生成html测试报告'''
12 # discover函数遍历指定目录,按条件过滤文件,返回测试套件列表
13 discover_suites = unittest.defaultTestLoader.discover(case_dir, pattern='test_*.py')
14 print(discover_suites)
15 fp = open(html_name, 'wb')
16 runner = HTMLTestRunner.HTMLTestRunner(
17 stream=fp,
18 title='亚洲危险天气项目自动化测试报告',
19 description='用例执行情况:')
20 runner.run(discover_suites)
21 fp.close()
22 print("测试结果文件:", html_name)
23
24
25 def del_empty_html():
26 '''删除之前一次生成的空html文件'''
27 lastest_file = sendmail_html.find_new_file(result_dir)
28 file_size = os.path.getsize(lastest_file)
29 if file_size:
30 pass
31 else:
32 os.remove(lastest_file)
33 print("上次结果文件为空,已删除!", lastest_file)
34
35
36 del_empty_html() # 删除之前一次生成的空html文件
37 suites_run_html() # 执行测试套件