失败重跑与重复执行插件

2024-01-09 22:04

本文主要是介绍失败重跑与重复执行插件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

章节目录:

    • 一、失败重跑插件
      • 1.1 概述
      • 1.2 安装
      • 1.3 参数讲解
      • 1.4 代码示例
    • 二、重复执行插件
      • 2.1 概述
      • 2.2 安装
      • 2.3 代码示例
    • 三、结束语

一、失败重跑插件

1.1 概述

  • pytest-rerunfailures 是一个用于 pytest 测试框架的插件,它提供了重新运行失败的测试用例的功能。
  • 当测试用例失败时,pytest-rerunfailures 可以自动重新运行失败的测试用例,以便给予测试用例更多的机会通过。
  • 兼容版本:python3 、pytest 5.0 及以上。

1.2 安装

  • 使用国内镜像源安装
# 清华大学镜像源。
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pytest-rerunfailures# 阿里云镜像源。
pip3 install -i https://mirrors.aliyun.com/pypi/simple pytest-rerunfailures# 华为云镜像源。
pip3 install -i https://mirrors.huaweicloud.com/repository/pypi/simple pytest-rerunfailures

1.3 参数讲解

  • reruns:这个参数指定了测试函数在失败时重试的次数
  • reruns_delay:这个参数指定了每次重试之间的时间间隔(以为单位)。
  • reruns_filter:可以使用 reruns_filter 参数来指定一个函数,用于动态决定是否应该重试运行测试函数。该函数接受测试函数对象作为参数,并返回一个布尔值,指示是否应该进行重试。
  • reruns_errors:可以使用 reruns_errors 参数来指定一个异常类型或元组,表示哪些异常类型应该触发重试。只有在捕获到指定的异常类型时,才会触发重试。
  • reruns_incremental:可以使用 reruns_incremental 参数来启用增量模式。在增量模式下,重试的次数将逐渐增加,直到测试函数通过或达到最大重试次数。
  • reruns_on_skips:可以使用 reruns_on_skips 参数来指定是否在跳过测试时也进行重试。如果设置为 True,则在跳过测试时也会触发重试

1.4 代码示例

  • @pytest.mark.flaky() 插件提供的装饰器,用于在测试函数上标记重试行为
import randomimport pytestdef get_random():# 0 ~ 101 之间的随机整数。return random.randint(0, 101)# 最多重试 5 次,每次间隔 2 s。
@pytest.mark.flaky(reruns=5, reruns_delay=2)
def test_example_1():r = get_random()print(f"num={r}")# 随机数大于等于70才会通过断言,否则进入重试。assert r >= 70# num=42# num=69# num=86# ========================= 1 passed, 2 rerun in 4.13s ==========================# 如果遇到 ZeroDivisionError 就重试。
@pytest.mark.flaky(reruns_errors="ZeroDivisionError")
def test_example_2():num = 10 / 0assert 5 > num# RERUN# FAILED

二、重复执行插件

2.1 概述

  • pytest-repeat 是一个用于 pytest 的插件,它允许你在运行测试时重复运行特定的测试用例。
  • 通过重复运行测试用例,你可以增加测试的可靠性,尤其是对于那些具有随机性或不确定性的测试场景。

2.2 安装

  • 使用阿里云镜像源安装
pip install -i https://mirrors.aliyun.com/pypi/simple/ pytest-repeat

2.3 代码示例

  • @pytest.mark.repeat(count) 可以将某些测试用例标记为执行重复多次:
import pytest@pytest.mark.repeat(3)
def test_repeat():print("测试用例执行")assert True# [ 33%]测试用例执行# [ 66%]测试用例执行# [100%]测试用例执行

三、结束语


“-------怕什么真理无穷,进一寸有一寸的欢喜。”

微信公众号搜索:饺子泡牛奶

这篇关于失败重跑与重复执行插件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/588578

相关文章

IDEA常用插件之代码扫描SonarLint详解

《IDEA常用插件之代码扫描SonarLint详解》SonarLint是一款用于代码扫描的插件,可以帮助查找隐藏的bug,下载并安装插件后,右键点击项目并选择“Analyze”、“Analyzewit... 目录SonajavascriptrLint 查找隐藏的bug下载安装插件扫描代码查看结果总结Sona

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

C#如何优雅地取消进程的执行之Cancellation详解

《C#如何优雅地取消进程的执行之Cancellation详解》本文介绍了.NET框架中的取消协作模型,包括CancellationToken的使用、取消请求的发送和接收、以及如何处理取消事件... 目录概述与取消线程相关的类型代码举例操作取消vs对象取消监听并响应取消请求轮询监听通过回调注册进行监听使用Wa

PHP执行php.exe -v命令报错的解决方案

《PHP执行php.exe-v命令报错的解决方案》:本文主要介绍PHP执行php.exe-v命令报错的解决方案,文中通过图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录执行phpandroid.exe -v命令报错解决方案执行php.exe -v命令报错-PHP War

Oracle数据库执行计划的查看与分析技巧

《Oracle数据库执行计划的查看与分析技巧》在Oracle数据库中,执行计划能够帮助我们深入了解SQL语句在数据库内部的执行细节,进而优化查询性能、提升系统效率,执行计划是Oracle数据库优化器为... 目录一、什么是执行计划二、查看执行计划的方法(一)使用 EXPLAIN PLAN 命令(二)通过 S

poj2406(连续重复子串)

题意:判断串s是不是str^n,求str的最大长度。 解题思路:kmp可解,后缀数组的倍增算法超时。next[i]表示在第i位匹配失败后,自动跳转到next[i],所以1到next[n]这个串 等于 n-next[n]+1到n这个串。 代码如下; #include<iostream>#include<algorithm>#include<stdio.h>#include<math.

poj3261(可重复k次的最长子串)

题意:可重复k次的最长子串 解题思路:求所有区间[x,x+k-1]中的最小值的最大值。求sa时间复杂度Nlog(N),求最值时间复杂度N*N,但实际复杂度很低。题目数据也比较水,不然估计过不了。 代码入下: #include<iostream>#include<algorithm>#include<stdio.h>#include<math.h>#include<cstring

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

Maven(插件配置和生命周期的绑定)

1.这篇文章很好,介绍的maven插件的。 2.maven的source插件为例,可以把源代码打成包。 Goals Overview就可以查看该插件下面所有的目标。 这里我们要使用的是source:jar-no-fork。 3.查看source插件的example,然后配置到riil-collect.xml中。  <build>   <plugins>    <pl