8. reruns失败重跑
创始人
2024-05-24 06:51:57
0

pytest-rerunfailures是一个通过重跑机制来消除不稳定失败的pytest插件

安装插件: pip install pytest-rerunfailures

使用方式有两种:

  • 命令行参数: --reruns n(重新运行次数)–reruns-delay m(等待运行秒数)

  • 装饰器方式:@pytest.mark.flaky(reruns=5, reruns_delay=2)

rerun所有失败的用例

  1、使用--reruns命令行选项,并指定要运行测试的最大次数:pytest --reruns 5 -s

  2、添加rerun的delay,使用--reruns-delay命令行选项,指定下次测试重新开始开始前等待的秒数:pytest --reruns 5 --reruns-delay 10 -s

  3、运行失败的fixture或setup_class也将重新执行

  4、rerun指定的测试用例,要将单个测试用例添加flaky装饰器@pytest.mark.flaky(reruns=5),并在测试失败时rerun,需要指定最大运行的次数

重运行次数之间可以设置时间间隔(单位:秒) --reruns 2 --reruns-delay 5 重运行2次,每次间隔5秒

Notes:

  • 如果指定了用例的重复运行次数和delay,在命令行添加--reruns和--reruns-delay对这些用例时不会生效的

  • 不可以和fixture装饰器一起使用:@pytest.fixture()

  • 该插件与pytest-xdist的--looponfail标记不兼容

  • 该插件与核心--pdb标记不兼容

运行失败的fixture或setup_class也将重新执行

报告

allure报告看不出有rerun,可以用html报告查看有多少条rerun的用例

pytest.main(["-s","-v",

"--html=report.html",

# "-m","demo or smoke",

"--alluredir=allure_dir",

"--reruns","2","--reruns-delay","5"])

兼容性

不可以与类,模块还有包级别的fixture装饰器一起使用: @pytest.fixture()

该插件与pytest-xdist的 --looponfail 标志不兼容

该插件在使用pdb调试时候会有不兼容性

最后总结,这个插件虽然还用,但是坑还是不少,建议主要使用失败重试次数和重试间隔的功能即可

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...