当前位置: 首页 > news >正文

测试框架pytest教程(8)失败重试-pytest-rerunfailures

`pytest-rerunfailures`是一个pytest插件,用于重新运行失败的测试用例。当测试用例在第一次运行时失败,该插件会自动重新运行指定次数的失败用例,以提高稳定性和减少偶发性错误的影响。

要使用`pytest-rerunfailures`插件,需要按照以下步骤进行安装和配置:

 安装插件

在终端中运行以下命令来安装插件:


   ```
   pip install pytest-rerunfailures
   ```

 配置插件

在pytest配置文件中或通过命令行参数来配置插件。以下是一个示例配置:


   ```
   pytest --reruns 2 --reruns-delay 1
   ```

   - `--reruns n`:指定重试失败用例的次数。在此示例中,失败用例将会重新运行2次。
   - `--reruns-delay se`:指定每次重试之间的延迟时间(秒)。在此示例中,每次重试将会有1秒的延迟。

   你也可以将这些配置添加到pytest配置文件中,例如pytest.ini或setup.cfg文件。在配置文件中,可以按照如下方式添加:


   [pytest]
   reruns = 2
   reruns_delay = 1
 

运行测试

运行你的pytest测试用例。当有测试用例失败时,插件将会自动重新运行失败用例指定次数。

使用`pytest-rerunfailures`插件可以提高测试用例的稳定性,特别是在遇到偶发性错误或不稳定的环境时。然而,过多的重试可能会掩盖真正的问题,因此需要根据具体情况选择合适的重试次数和延迟时间。

3次重试,一共执行4次

重试包含特定error的用例

$ pytest --reruns 5 --only-rerun AssertionError 

 重试不包含特定error的用例

$ pytest --reruns 5 --rerun-except AssertionError

单个用例重试

 把用例标记为flasky,并配置重试次数

@pytest.mark.flaky(reruns=5)
def test_example():assert False

 延迟时间:

@pytest.mark.flaky(reruns=5, reruns_delay=2)

添加条件

@pytest.mark.flaky(reruns=5, condition=sys.platform.startswith("win32"))

 

 包含或者不包含特定error

@pytest.mark.flaky(rerun_except="AssertionError")

包含error类型为list

@pytest.mark.flaky(only_rerun=["AssertionError", "ValueError"])

 

http://www.lryc.cn/news/138003.html

相关文章:

  • 6个主流的工业3D管道设计软件
  • 基于微信小程序的垃圾分类系统设计与实现(2.0 版本,附前后端代码)
  • 基础论文学习(4)——CLIP
  • SpringBoot利用ConstraintValidator实现自定义注解校验
  • 十、pikachu之php反序列化
  • PHP“牵手”拼多多商品详情数据获取方法,拼多多API接口批量获取拼多多商品详情数据说明
  • 前端面试:【Redux】状态管理的精髓
  • element-ui中的el-table的summary-method(合计)的使用
  • “深入探索JVM:解析Java虚拟机的工作原理与性能优化“
  • 【后端】Core框架版本和发布时间以及.net 6.0启动文件的结构
  • Linux 定时任务 crontab 用法学习整理
  • 看板之道:如何利用Kanban优化您的项目流程
  • Docker的基础操作
  • 14、缓存预热+缓存雪崩+缓存击穿+缓存穿透
  • 【PostGreSQL】PostGreSQL到Oracle的数据迁移
  • jupyter notebook出现ERR_SSL_VERSION_OR_CIPHER_MISMATCH解决方案
  • 前端进阶Html+css10----定位的参照对象(高频面试题)
  • 总结记录Keras开发构建神经网络模型的三种主流方式:序列模型、函数模型、子类模型
  • python环境建设
  • Python学习笔记第五十九天(Matplotlib 安装)
  • (6)(6.3) 自动任务中的相机控制
  • 什么是cssreset ?为什么要用到cssreset?
  • SpringCloud学习笔记(四)_ZooKeeper注册中心
  • 【算法专题突破】双指针 - 移动零(1)
  • Nginx高可用集群
  • Rust 基础入门 ——所有权 引言 :垃圾自动回收机制的缺陷。
  • Ubuntu20.04安装软件报错:The following packages have unmet dependencies
  • Java 与设计模式(12):享元模式
  • React配置代理(proxy)
  • 队列(Queue):先进先出的数据结构队列