专栏首页自动化、性能测试Pytest系列(11)- 失败重跑插件pytest-rerunfailures的详细使用

Pytest系列(11)- 失败重跑插件pytest-rerunfailures的详细使用

如果你还想从头学起Pytest,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1690628.html

环境前提

以下先决条件才能使用pytest-rerunfailures

  • Python 3.5, 最高 3.8, or PyPy3
  • pytest 5.0或更高版本

安装插件

pip3 install pytest-rerunfailures -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

提前了解重点

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

装饰器参数:reruns=n(重新运行次数),reruns_delay=m(等待运行秒数)

重新运行所有失败的用例

要重新运行所有测试失败,使用 --reruns 命令行选项,并指定要运行测试的最大次数:

pytest --reruns 5 -s 

知识点

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

添加重新运行的延时

要在两次重试之间增加延迟时间,使用 --reruns-delay 命令行选项,指定下次测试重新开始之前等待的秒数

pytest --reruns 5 --reruns-delay 10 -s

重新运行指定的测试用例

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

小栗子

import pytest


@pytest.mark.flaky(reruns=5)
def test_example():
    import random
    assert random.choice([True, False, False])

执行结果

collecting ... collected 1 item

11_reruns.py::test_example RERUN                                         [100%]
11_reruns.py::test_example PASSED                                        [100%]

========================= 1 passed, 1 rerun in 0.05s ==========================

同样的,这个也可以指定重新运行的等待时间

@pytest.mark.flaky(reruns=5, reruns_delay=2)
def test_example():
    import random
    assert random.choice([True, False, False])

注意事项

如果指定了用例的重新运行次数,则在命令行添加--reruns对这些用例是不会生效的

兼容性问题

  • 不可以和fixture装饰器一起使用:

@pytest.fixture()

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

--looponfail

  • 该插件与核心标志不兼容

--pdb

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Pytest系列(2) - assert断言详细使用

    https://www.cnblogs.com/poloyy/category/1690628.html

    小菠萝测试笔记
  • 性能测试必备知识(8)- 深入理解“进程状态”

    小菠萝测试笔记
  • Jmeter系列(35)- 使用 ServerAgent 监控服务器

    可以通过官方下载:https://jmeter-plugins.org/downloads/old/

    小菠萝测试笔记
  • Groovy秘诀 顶

    听说java世界里有个Groovy大神!java需要半天处理的事情,Groovy只需要几分钟,是的,几分钟…剩下来的时间,程序员终于有时间泡妹子了,^_^……....

    白石
  • 国内前三,腾讯云AI公有云市场份额持续领先

    ? 7月14日,国际数据公司(IDC)最新发布的《中国人工智能云服务市场研究报告(2019)》显示腾讯云AI公有云市场份额进入国内前三,人脸识别API调用量国...

    腾讯云AI中心
  • 如何评价百度新目标:Everyone can AI ?| 在现场

    量子位
  • 2019年终盘点【AI版】

    导语:小时候写作文,总爱用”时光如脱缰的野马”开头,渐渐长大才懂得,野马脱缰是多么迅疾多么可怕的事儿。年初烟花炮竹的烟尘刚刚散去,新年伊始的规划和绸缪犹在眼前,...

    用户6888863
  • 小程序有哪些功能在内测?

    连胜老师最近经常逛小程序社区,发现有不少内测相关帖子,整理了一篇文章,希望对大家有帮助。欢迎有内测资格的同学留言补充~

    连胜
  • 苹果AI总监披露自动驾驶系统:可以推断出行人位置

    凤凰科技讯 据科技博客9to5mac北京时间12月11日报道,过去,苹果一直在强调公司在机器学习上的努力。但是在上周,苹果人工智能(AI)总监鲁斯兰·萨拉赫丁诺...

    企鹅号小编
  • pytest文档17-fixture之autouse=True

    平常写自动化用例会写一些前置的fixture操作,用例需要用到就直接传该函数的参数名称就行了。当用例很多的时候,每次都传这个参数,会比较麻烦。 fixture里...

    上海-悠悠

扫码关注云+社区

领取腾讯云代金券