pytest中的rerunfailures的插件(失败重试)

发布于:2025-07-31 ⋅ 阅读:(26) ⋅ 点赞:(0)

目录

1-- 安装rerunfailures插件

2-- rerunfailures的使用

3-- 重试案例


  1. 安装rerunfailures插件

    1.  pip install  pytest-rerunfailures
    2. 点击左下角的控制台面板
      1. 输入 pip install  pytest-rerunfailures
    3. 出现上图的情况就算安装完成了
  2. rerunfailures的使用

    1. 可以添加一下参数使用,在执行参数用例的时候 
      1. --reruns 重试次数
      2. --reruns-delay 数字(秒)
        1. 每延迟的多少秒执行一次
  3. 重试案例

    1. import pytest
      
      
      class TestRerunFailures:
      
          def test_demo_001(self):
              print("---------test_demo_001--------")
              print("success")
              assert True
      
          def test_demo_002(self):
              print("---------test_demo_002--------")
              print("success")
              assert True
      
          def test_demo_003(self):
              print("---------test_demo_001--------")
              print("fail")
              assert False
      
          def test_demo_004(self):
              print("---------test_demo_004--------")
              print("fail")
              assert False
      
          def test_demo_005(self):
              print("---------test_demo_005--------")
              print("success")
              assert True
    2. 运行结果
      1. PASSED           [ 20%]---------test_demo_001--------
        success
        PASSED           [ 40%]---------test_demo_002--------
        success
        FAILED           [ 60%]---------test_demo_001--------
        fail

        test_rerunfailures.py:15 (TestRerunFailures.test_demo_003)
        self = <test_rerunfailures.TestRerunFailures object at 0x00000266195D6F00>

            def test_demo_003(self):
                print("---------test_demo_001--------")
                print("fail")
        >       assert False
        E       assert False

        test_rerunfailures.py:19: AssertionError
        FAILED           [ 80%]---------test_demo_004--------
        fail

        test_rerunfailures.py:20 (TestRerunFailures.test_demo_004)
        self = <test_rerunfailures.TestRerunFailures object at 0x000002661961A4E0>

            def test_demo_004(self):
                print("---------test_demo_004--------")
                print("fail")
        >       assert False
        E       assert False

        test_rerunfailures.py:24: AssertionError
        PASSED           [100%]---------test_demo_005--------
        success

    3. 我们想让这些在失败之后从事几次之后,在做判断
    4. 我们可以添加
      1. --reruns 重试次数
      2. pytest -s .\test_rerunfailures.py --reruns 5
    5.  运行结果如下 
    6. 可以看到有两个失败的
      1. 其他三个都是成功
      2. 一共重试了10次
        1. 相当于每个失败的用例执行了5次
    7. 我们可以在后面在添加延迟参数,这样这些用例就会在每个一秒钟之后在次执行
      1. pytest -s .\test_rerunfailures.py --reruns 5 --reruns-delay 1
      2. 也是也可看到
        1. 这些只是对失败的用例进行重试,成功的用例不会再次执行


网站公告

今日签到

点亮在社区的每一天
去签到