首页 > 其他分享 >单元测试|unittest生成测试报告

单元测试|unittest生成测试报告

时间:2023-01-31 18:02:22浏览次数:38  
标签:测试报告 unittest 路径 单元测试 测试用例 path main

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)

查看执行结果

单元测试|unittest生成测试报告_测试报告

配置详细的html测试报告

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

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

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

单元测试|unittest生成测试报告_测试报告_02

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

单元测试|unittest生成测试报告_测试用例_03

二、只在测试方法中添加

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

注:上方下划线只有一个

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

单元测试|unittest生成测试报告_html_04

查看生成的测试报告

单元测试|unittest生成测试报告_测试报告_05

通过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生成测试报告_测试报告_06


标签:测试报告,unittest,路径,单元测试,测试用例,path,main
From: https://blog.51cto.com/u_15640304/6029838

相关文章

  • 电动自行车亚马逊UL2849测试报告
    UL2849测试报告流程1、申请人向五祥检测提出申请。2、申请人填写申请表,说明书和技术文件一并提供给五祥检测。3、五祥检测确定测试标准及测试项目并报价。4、申请人确认报价......
  • 电动自行车CE认证EN15194测试报告
    2009年欧盟推出了新的电动助力自行车标准EN15194,EN15194标准为国际第一个针对电动助力自行车的安全标准,产品通过EN15194检测可以证明产品符合国际一流水平,并且对企业开拓市......
  • 0141-Go-单元测试
    环境Time2022-08-25Go1.19前言说明参考:https://gobyexample.com/testing-and-benchmarking目标使用Go语言进行测试。示例packagemainimport("fmt"......
  • SpringBoot单元测试:@SpringBootTest
    接上一篇:SpringBoot整合SSM添加依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId......
  • 美国亚马逊家用电器UL​​认证​​家用厨房绞肉机UL982测试报告办理
    家用绞肉机的需求变化:作为满足家庭烹饪基本实需求的工具类产品,绞肉机帮助经常在家烹饪或偶尔下厨的人群节省时间,解放双手或减轻劳动力。从需求角度来看:一是自动化代替手动操......
  • 手电筒上架亚马逊UL1576测试报告
    一、办理UL测试报告的流程是什么?1、咨询报价2、签订合同3、填写申请表、并将样品和有关技术文件送至机构。5、支付测试费用。6、安排产品进行测试。7、如果试验不合格,机构将......
  • 【.NET】笔记:过年开工第一天,学学单元测试
    简单了解一下,目前VS里测试分3种,自带的MsTest、Xunit、Nunit。Xunit用的是Assert类的,注解上填的是[Fact],不带参数,[Theory],带参数,在[InlineData("参数1")],接着使用方法来判断......
  • C#单元测试(net、api等)
    C#单元测试相关的开源软件中,NUnit及XUnit星级排名靠前,MsTest是微软公司开发的集成在VisualStudio中的C#单元测试工具。既然微软文档中将XUnit列在第一个,那就用他吧,别在选......
  • 【六袆 - Java】在本地搭建easyexcel源码环境;easyexcel提供的demo单元测试用例完美运
    在本地搭建easyexcel源码环境​​EasyExcel​​​​本地环境搭建​​​​最新版本3.1.5,依赖问题,解决方案​​​​junit-读Excel​​EasyExcel本篇从github或官方文档来源参......
  • 你知道这个提高 Java 单元测试效率的 IDEA 插件吗
    前言2023年我们公司主抓代码质量,所以单元测试必不可少,而且都写到了年底的绩效目标中了。在考虑如何达成这个目标的过程中,我发现了一个关于单元测试的IDEA插件——SquareTe......