单元测试完成后,我们可以生成易于使用的HTML测试报告来展示测试结果
实现报告的生成,可以使用HTMLTestRunner作为unittest模块的扩展,它提供了生成HTML格式测试报告的功能
PS:公众号后台回复"HTMLTestRunner",下载HTMLTestRunner.py 模版
操作步骤
-
下载HTMLTestRunner.py 模版
-
复制HTMLTestRunner.py文件到项目文件夹或Python 安装路径下的lib文件夹
-
直接生成html测试报告
修改代码调用生成
测试模块代码
# 引入unittest模块
import unittest
# 创建测试类,继承unittest.TestCase
class TestCaseClass(unittest.TestCase):
# 测试方法,每执行一次test的测试方法就会执行一次
def setUp(self) -> None:
print("setUp方法")
def tearDown(self) -> None:
print("tearDown方法")
# 测试类,以@classmethod修饰测试类,且在过程中仅执行一次
@classmethod
def setUpClass(cls) -> None:
print("setUpClass每个类执行一次")
@classmethod
def tearDownClass(cls) -> None:
print("tearDownClass每个类执行一次")
def test_method1(self):
a = 1
b = 2
c = a + b
# 断言 判断c和3是否相同
self.assertEqual(c, 3)
def test_method2(self):
a = 2
b = 3
c = a * b
#断言 判断c和6是否相同
self.assertEqual(c, 6)
if __name__ == '__main__':
# 执行所有的以test为开头的测试用例
unittest.main()
执行测试脚本
# 引入unittest模块
import unittest
from HTMLTestRunner import HTMLTestRunner
import time
test_dir = './'
discover = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
# 定义报告目录
file_dir = "./reports/"
# 定义报告名称格式,按照年月日时分秒格式生成
now_time = time.strftime("%Y-%m-%d %H_%M_%S")
# 生成报告的路径及对应名称
file_name = file_dir + now_time + "Report.html"
with open(file_name, "wb") as fp:
runner = HTMLTestRunner(stream=fp,
title="测试报告",
description="用例执行情况:",
verbosity=2)
# 执行测试流程
runner.run(discover)
作者简介:
程序员山茶,一个工作5年,并坚持探索测试之路的测试开发工程师。曾混迹于互联网大厂、IOTA行业领航企业、安全行业、大数据行业领航企业,欢迎和我一起沟通交流。公众号【程序员山茶】
欢迎关注我, 和我一起探索测试之路,终身成长