1、说明
在上一篇博客中,只是集成到了单个测试文件中,最终目的是将集成多个测试文件。例如登录、注册等模块测试用例放在一起执行,使用discover()方法,找到指定目录下可匹配的测试文件,循环添加到测试套件中。
2、目录结构
3、对HtmlReport类,做出如下修改
# coding=utf-8
import unittest,time
import HTMLTestRunner
class HtmlReport:
# 定义测试套件
test_suite = unittest.TestSuite()
# 测试的目录
test_dir = "D:\Programs\pythonProject\src\testcase"
'''
通过discover方法,从执行的开始目录到子目录递归查找‘Test’开头的所有模块,并返回test_suit
test_dir:测试用例所在目录
pattern='Test*.py':匹配Test开头的py文件
top_level_dir:测试模块的顶层目录,如果没有顶层目录,默认为None;
'''
discover = unittest.defaultTestLoader.discover(test_dir, pattern='Test*.py', top_level_dir=None)
# 将找到的测试用例,循环加入测试套件中
for test_case in discover:
test_suite.addTests(test_case)
# 指定报告存放位置
now_time = time.strftime("%Y%m%d%H%M%S")
file_path = "D:\Programs\pythonProject\src\report\report_html\" + now_time + ".html"
fs = open(file_path, 'wb')
runner = HTMLTestRunner.HTMLTestRunner(
stream=fs,
title="126邮箱测试报告",
description="用例执行情况,如下图所示:"
)
runner.run(test_suite)
fs.close()