UnitTestreport之UnitTest用例失败重运行机制

前言

很多小伙伴一直在诟病unittest,说unittest相对pytest来说太鸡肋了,pytest中提供了很多高级功能unittest中都没有。在这里还是想为unittest打抱不平一下,unittest是由python官方维护的官方库,官方库都是比较轻量级的,本身只实现核心的一些功能,肯定不会像pytest这些第三库一样根据需求,去开发一些定制的功能。其实unittest也有自己的优势,学习成本低,使用起来简单也易上手。目前还是有很多测试的小伙伴在使用的,于是前段时间小编想了想,决定在unittest的基础上扩展开发第三方库unittestreport,为unittest开发一些常用的扩展功能,来弥补unittest的不足。目前准备实现的功能有:多种风格HTML测试报告生成、多线程运行、用例失败重跑、数据驱动、命令行启动执行测试等功能(ps:大家可以可以留言提需求哦)

  • unittestreport的安装:pip install unittestreport

前段时间实现了第一个版本,unittest生成HTML测试报告,以及unittest用例多线程运行机制,最近这几天又优化了unittestreport的一个版本(1.0.9版本),实现了unittest用例失败重运行的机制,那么接下来就给大家介绍一下如何使用unittest用例失败重运行机制。

一、unittest用例重运行

关于unittest重运行机制,我unittestreport中提供了两种方式,第一种选择单个测试用例实现重运行,可以自己去标记失败需要重运行的测试用例,第二种是针对运行的所有的测试用例,只要运行失败的用例就会重运行改用例。那么接下来分别给大家介绍这两个功能的使用。

单个用例重运行
  • 如果像标记单个测试用例失败重运行,可以直接使用unittestreport中的rerun来标记测试用例,rerun接收两个参数count,和interval。

  • count:用来指定用例失败重运行的次数

  • interval:指定每次重运行的时间间隔

  • 下面有三个测试用例,其中有一个test_case_01使用了rerun进行了标记,设置的失败重运行次数为4次,每次间隔的时间2秒。

 

importunittestfromunittestreportimportrerun
classTestClass(unittest.TestCase):@rerun(count=4,interval=2)deftest_case_01(self):a=100b=99asserta==b  
deftest_case_02(self):a=100b=100asserta==b  
deftest_case_03(self):a=100b=101asserta==b
  • 运行上述用例

    importunittestfromunittestreportimportTestRunnerfromtestcaseimportTestClass# 导入上面写的测试用例类# 加载测试套件suite=unittest.defaultTestLoader.loadTestsFromTestCase(TestClass)# 执行测试用例runner=TestRunner(suite=suite)runner.run()
  • 生成测试报告如下图,可以看到第一条测试用例运行了三次:

 

全部用例失败重跑机制

关于所有的测试用例失败重跑,unittestreport中提供了一个更为简单的使用入口,直接使用unittestreport中TestRunner对象的rerun_run方法即可实现所有的用例失败重运行,rerun_run同样有两个参数,count和interval。

count:用来指定用例失败重运行的次数

interval:指定每次重运行的时间间隔

测试用例如下:

importunittestfromunittestreportimportrerun
classTestClass(unittest.TestCase):deftest_case_01(self):a=100b=99asserta==b
deftest_case_02(self):a=100b=100asserta==b
  • 使用unittestreport的重运行机制,运行上述用例

    importunittestfromunittestreportimportTestRunnerfromtestcaseimportTestClass# 导入测试用例类
    # 测试套件suite=unittest.defaultTestLoader.loadTestsFromTestCase(TestClass)# 创建执行对象runner=TestRunner(suite=suite)# 执行测试用例,失败重运行设置为3次,间隔时间为2秒runner.rerun_run(count=3,interval=2)

  • 执行测试报告如下图,可以看到两个失败的用例,都重复运行了三次:

  • 关于unittestreport重运行用例,就给大家介绍到这里。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/305754.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

以太坊开发者会议回顾:坎昆升级、硬分叉与布拉格

作者:Christine Kim Galaxy研究副总裁 编译:秦晋 碳链价值 2024年1月4日,以太坊开发人员齐聚Zoom for All Core Developers Execution (ACDE) Call #178 上。ACDE电话会议通常由以太坊基金会协议负责人Tim Beiko主持,是一个开发人…

【STM32】STM32学习笔记-串口发送和接收(27)

00. 目录 文章目录 00. 目录01. 串口简介02. 串口相关API2.1 USART_Init2.2 USART_InitTypeDef2.3 USART_Cmd2.4 USART_SendData2.5 USART_ReceiveData 03. 串口发送接线图04. USB转串口模块05. 串口发送程序示例06. 串口发送支持printf07. 串口发送支持printf_v208. 串口发送和…

5分钟彻底搞懂什么是token

大家好啊,我是董董灿。 几年前在一次工作中,第一次接触到自然语言处理模型 BERT。 当时在评估这个模型的性能时,领导说这个模型的性能需要达到了 200 token 每秒,虽然知道这是一个性能指标,但是对 token 这个概念却不…

聚道云软件连接器助力某餐饮管理有限公司实现人力资源信息自动化

客户介绍: 某餐饮管理有限公司是一家集餐饮连锁、餐饮管理、餐饮咨询等业务于一体的综合性餐饮企业。公司业务遍布全国多个城市,拥有众多员工。 添加图片注释,不超过 140 字(可选) 客户痛点: 员工入离职…

怎样把照片不想要的部分涂抹掉?安利下面这三款软件给你

在元旦假期的旅行中,我带着相机,用镜头记录下了每一个美好时刻。我爬上了高山之巅,俯瞰群山连绵起伏;我漫步在海滩上,感受海风轻拂脸颊;我甚至在城市的角落里,发现了那些平日里未曾留意的小确幸…

Unity 踩坑记录 AnyState 切换动画执行两次

AnySate 切换动画 Can Transition To Self 将这个勾选去掉!!!

树定义及遍历

1、定义树 可以参考链表,链表遍历不方便,如果单链表有多个next指针,则就形成了树。 Java: public class TreeNode {int val;TreeNode left, right;TreeNode(int val) { this.val val; this.left null;this.right null;} } Python&#…

【上海】买套二手房需要多少钱?

上次我们看了苏州的二手房,这次我们一起来看下上海的二手房价格如何。 数据来源 数据来自贝壳二手房,每个区最多获取了3千条房源信息,数据共计4万条左右 对数据感兴趣的朋友,公众号后台发送上海二手房获取数据文件 各区房源单价…

Linux中快速搭建RocketMQ测试环境

必要的文件下载 为什么选择RocketMQ | RocketMQ x86_64位JDK下载0jdk/8u391-b13 rocketmq二进制包下载-rocketmq-all-5.1.4-bin-release.zip 编译好的直接可用的dashboard【rocketmq-dashboard-1.0.0.jar】请在文章顶部下载 dashboard配套的配置文件【application.propert…

shell解释和权限概念

shell问题解释 问题1: 为什么要使用shell外壳? 因为用户不能直接访问操作系统 问题2: shell外壳是什么? shell外壳的工作是将使用者的命令翻译给核心(kernel)处理。 同时将处理结果反馈给使用者。 问…

mysql之导入导出远程备份

文章目录 一、navicat导入导出二、mysqldump命令导入导出2.1导出2.1.1 导出表数据和表结构2.1.2 只导出表结构() 2.2 导入(使用mysqldump导入 包含t _log表的整个数据库 共耗时 20s;)方法一:方法二: 三、LOAD DATA INFILE命令导入导出(只针对单表)设置导…

Linux编译器

目录 Linux编译器 程序编译的步骤 gcc编译器完成C语言程序的编译 预处理 编译 汇编 链接 上一期我们学习了Linux中的vim编辑器,其实本质上vim编辑器就是写代码的一个工具。上期内容我们也已经说过,一份合格的代码需要进行编写,编译&am…

优化改进YOLOv8算法之AKConv(可改变核卷积),即插即用的卷积,效果秒杀DSConv

目录 1 AKConv原理 1.1 Define the initial sampling position 1.2 Alterable convolutional operation 1.3 Extended AKConv 2 YOLOv8中加入AKConv模块 2.1 AKConv.py文件配置 2.2 task.py配置 2.3 创建添加优化点模块的yolov8-AKConv.yaml 2.4 训练 1 AKConv原理 …

什么事“网络水军”?他们的违法活动主要有四种形式

我国治理网络水军,包括造谣引流、舆情敲诈、刷量控评、有偿删帖等各类“网络水军”等违法犯罪活动已经许久。 日前,官方召开新闻发布会,公布了相关的一些案件进程,今年已累计侦办相关案件339起,超过历年的全年侦办案件…

国产系统-银河麒麟桌面版安装wps

0安装版本 系统版本 版本名称:银河麒麟桌面版操作系统V10(SP1) 软件版本 wps个人版2019 1双击安装 1.1卸载自带wps 为什么要卸载没有序列号,授权过期,不是免费的,通过先安装/在升级个人版跳过输入序列号问题等等原因 1.1.1当前自带的wps版本 1.1.2卸载 不卸载无法安装在…

rime中州韵小狼毫 随机数 随机码 电脑信息 滤镜

在输入法中支持生成GUID,或者随机数,随机字符,获取自身电脑信息,这将是一个非常酷的功能。 先睹为快 本文所分享滤镜,主要用于生成一些动态的信息词条,效果如下👇: GUID.lua GU…

c JPEG编码,但有错误

#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> #include <unistd.h> #include <sys/ioctl.h> #include <linux/videodev2.h> //v4l2 头文件 #include <strin…

阿里云 WindowsServer 使用之 配置 SQL Server 允许远程连接

阿里云 WindowsServer 使用之 配置 SQL Server 允许远程连接 第一步&#xff1a;安装 SQL Server 数据库 这是一个很详细的安装教程&#xff0c;可以参考一下 安装SQL Server详细教程 需要注意&#xff1a;安装实例时&#xff0c;建议在‘身份验证模式’直接选择“混合模式”…

MySQL决战:MySQL数据导入导出

目录 前言 一.navact数据导入导出&#xff08;第三方工具&#xff09; 1.导入数据 2.数据导出 二. mysqldump命令导入导出数据 1.mysqldump介绍 2.数据导出 3.数据导入 三.load data file进行数据导入导出&#xff08;只限于单表&#xff09; 1.数据导出 增加导出权…

springboot学生成绩管理系统源码和论文

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…