unittest生成测试报告

测试报告为测试结果的统计即展示,是自动化测试不可或缺的一部分,利用unittest 可以生成测试报告。

使用第三方 HTMLTestRunner 执行测试用例集,生成网页版测试报告

HTMLTestRunner是Python标准库的unittest模块的一个扩展,在使用该模块之前 要下载HTMLTestRunner.py文件,并将该文件保存在python安装路径下的lib文件夹或者 是项目的子包中,在python代码中通过 import HTMLTestRunner导入,即可使用。

HTMLTestRunner常用参数介绍:

  • stream: 配置测试报告要保存的文件路径
  • title:测试报告标题
  • description: 测试报告的描述信息

代码示例:

# 使用discover()来实现添加执行整个目录下所有的测试用例
import os
import unittest
import HTMLTestRunner
import time# 获取当前路径
curren_path = os.path.dirname(__file__)
# 获取测试用例目录的路径
case_path = os.path.join(curren_path,"all_case")# 从当前路径回到上一层路径
# case_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))# 匹配测试用例路径下的所有的测试方法
discover = unittest.defaultTestLoader.discover(start_dir=case_path,  # 用例路径pattern="*_case*.py",top_level_dir=None)   # 文件类型
# 创建主套件
main_suite = unittest.TestSuite()
# 把测试用例路径添加到主套件中
main_suite.addTest(discover)
# 执行主套件里的测试用例;如果要生成测试报告,则不通过unittest.main()方法执行
# unittest.main(defaultTest="main_suite",verbosity=2)# 执行并生成测试报告
# 加个时间戳
now = time.strftime("%y-%m_%d_%H_%M_%S_",time.localtime(time.time()))
# 创建html类型测试报告对象,将执行的过程写入到file_obj中
file_obj = open("D:/pythonProject/P7_P8_Requests/""unittest框架/test_report/""{}test_report.html".format(now),"w+",encoding="utf-8")
# 创建配置html测试报告的相关信息的对象
runner = HTMLTestRunner.HTMLTestRunner(stream=file_obj,title="第一次的测试报告",description="我是测试报告的描述信息")
# 生成html测试报告;如果要生成测试报告,则不通过unittest.main()方法执行
runner.run(main_suite)

查看执行结果

配置详细的html测试报告

在测试用例中加上注释信息,即可在html报告中体现,能更好的展示每个用例的信息

一、通过添加 3对双引号:“”“内容”“”

通过在类的下面添加 3对双引号 “”“测试类01的详细信息”“”;在测试方法下面添加 3对双引号 “”“test_aaa方法的详细信息”“”;如下图:

在生成的测试报告中可更好的展示每条用例的作用

二、只在测试方法中添加

self._testMethodName=设置测试用例名称
self._testMethodDoc=设置测试用例详情

注:上方下划线只有一个

在测试用例方法中添加注释信息;如下图

查看生成的测试报告

通过TextTestRunner()方法生成text类型的测试报告

代码示例如下:

# 使用discover()来实现添加执行整个目录下所有的测试用例
import os
import unittest
import HTMLTestRunner
import time# 获取当前路径
curren_path = os.path.dirname(__file__)
# 获取测试用例目录的路径
case_path = os.path.join(curren_path,"all_case")# 从当前路径回到上一层路径
# case_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))# 匹配测试用例路径下的所有的测试方法
discover = unittest.defaultTestLoader.discover(start_dir=case_path,  # 用例路径pattern="*_case*.py",top_level_dir=None)   # 文件类型
# 创建主套件
main_suite = unittest.TestSuite()
# 把测试用例路径添加到主套件中
main_suite.addTest(discover)
# 执行主套件里的测试用例;如果要生成测试报告,则不通过unittest.main()方法执行
# unittest.main(defaultTest="main_suite",verbosity=2)# 生成text类型的测试报告
with open('./report/test_result.txt','w',encoding='utf-8') as file:test_runner = unittest.TextTestRunner(stream=file,descriptions="执行用例的测试报告", verbosity=2)test_runner.run(main_suite)

查看执行结果

更多技术文章

单元测试|unittest生成测试报告相关推荐

  1. 系统学习Python——单元测试unittest:测试报告

    分类目录:<系统学习Python>总目录 相关文章: · 单元测试unittest:框架结构 · 单元测试unittest:测试固件 · 单元测试unittest:编写测试用例 · 单元测 ...

  2. 单元测试——Unittest(测试报告)

    测试报告生成 测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础. 首先我们需要拿到开发写的代码,查看其逻辑关系,确认 ...

  3. unittest生成测试报告步骤

    1.下载HTMLTestRunner. 适合python3使用的:HTMLTestRunner.py_免费高速下载|百度网盘-分享无限制 把这个文件放在你安装python的lib目录下. 2.把用例替 ...

  4. unittest生成测试报告不成功的原因和解决方案

    辛苦搞了半天代码,用unittest框架生成测试报告时发现对应的目录下没有测试报告,看看右键执行时是不是执行的原本的文件名,还是前面带了unittest,如果带了unittest,解决方案如下. 解决 ...

  5. python单元测试教程_python单元测试unittest 输出测试报告HTMLTestRunner

    建立unittest步骤: 1.先导入模块unittest及要测试的函数 2.再创建一个继承unittest.TestCase的类,类命名要包含Test 3.在类中创建一个方法,命名为test_开头 ...

  6. python生成报告_python生成测试报告

    <最简洁的nose生成html报告方法> 安装: nose是继承于unittest的一个python单元测试框架. 属于第三方包,要使用,首先需要安装,推荐pip(解决依赖): pip i ...

  7. 系统学习Python——单元测试unittest:编写测试用例

    分类目录:<系统学习Python>总目录 相关文章: · 单元测试unittest:框架结构 · 单元测试unittest:测试固件 · 单元测试unittest:编写测试用例 · 单元测 ...

  8. 系统学习Python——单元测试unittest:命令行执行测试

    分类目录:<系统学习Python>总目录 相关文章: · 单元测试unittest:框架结构 · 单元测试unittest:测试固件 · 单元测试unittest:编写测试用例 · 单元测 ...

  9. 系统学习Python——单元测试unittest:批量执行测试文件

    分类目录:<系统学习Python>总目录 相关文章: · 单元测试unittest:框架结构 · 单元测试unittest:测试固件 · 单元测试unittest:编写测试用例 · 单元测 ...

最新文章

  1. 桌面上的计算机打开速度慢,电脑开机进入桌面特别慢
  2. 【Linux 内核 内存管理】Linux 内核堆内存管理 ② ( 动态分配堆内存方式 | brk 系统调用 | mmap 系统调用 | brk 系统调用源码介绍 )
  3. 泡泡玛特,走出“盲盒”?
  4. keras 自定义评估函数和损失函数loss训练模型后加载模型出现ValueError: Unknown metric function:fbeta_score
  5. C# WPF MVVM模式Prism框架下事件发布与订阅
  6. c语言实现socket转json,C++解析JSON进行网络传输--一个通过JSON方式的socket传输
  7. 面试之 Redis汇总
  8. VMware安装kali linux 和中文汉化方法
  9. 队列的基本操作_算法设计:数据结构-队列
  10. IIS------项目配置到IIS后报500错误
  11. python类的属性前加上双下划线_Python中使用双下划线防止类属性被覆盖问题
  12. 8.ps输出属性-----状态
  13. 《Effective Java》,关于异常
  14. Lua - 从指定时区提供的时间戳、时区的 UTC 时差,转换为对应当前本地 UTC 时差后的时间
  15. RFB_Net(ECCV 2018)
  16. UWB高精度定位落地:中大型区域动态人员精细网格化管理
  17. Unity旋转基础——二维旋转与三维旋转
  18. AGV调度系统解决方案
  19. 下载 傅立叶变换 冷建华pdf_傅里叶变换_PDF图书下载_冷建华_免费PDF电子书下载_第一图书网...
  20. 快速找到你的另一半——相亲小程序

热门文章

  1. HCIA的基础知识(1)
  2. DZ 系统维护工具箱Tools
  3. C#-调用OCR组件识别图片文字
  4. matlab GUI 绘图 坐标轴控件
  5. 四两拨千斤!深度主动学习综述2020
  6. 卷积神经网络( CNN)与全卷积神经网络(FCN)
  7. android加密、签名相关
  8. Vue+element通过接口上传图片给后端
  9. Python_变量声明
  10. markdown 数学公式 任意符号 存在符号