码迷,mamicode.com
首页 > 其他好文 > 详细

pytest失败重跑

时间:2020-11-30 15:34:12      阅读:5      评论:0      收藏:0      [点我收藏+]

标签:命令   sni   间隔   span   session   str   lan   utf-8   过程   

用例重跑有两种方法,利用pytest-rerunfailures包,和直接使用@pytest.mark.flaky(reruns=重跑次数,reruns_delay=间隔时间)装饰器。

pytest-rerunfailures包

需安装插件 pip installpytest-rerunfailures安装好后,只要执行命令 pytest test_study.py--reruns n 即可实现失败重跑。其中n代表重跑次数,如,输入 pytesttest_study.py –reruns 3 代表用例失败后尝试重新执行3次,注意,是用例执行失败后尝试执行3次,加上第一次失败的那次,总共执行4次

@pytest.mark.flaky(reruns=n,reruns_delay=t)装饰器

装饰器 @pytest.mark.flaky(reruns=n,reruns_delay=t) ,其中n是指重跑次数,t是指间隔时间。

例1 直接使用

import pytest
class Test_case:
  def test_case1(self):

    print("执行用例1")

def test_case2(self):
    print("执行用例2")

 @pytest.mark.flaky(reruns=3,reruns_delay=2)
 def test_case3():
   print("执行用例3")

   assert 1 == 2
  pytest.main(["-s","test_study.py"])

运行结果:

collected 3 items

test_study.py session

执行用例1

.执行用例2

.执行用例3

Rsession

执行用例3

Rsession

执行用例3

Rsession

执行用例3

用例3已经重跑了3次,加上第一次,总共跑了4次,且在执行过程中,可人为感受到每次重跑之间都会有间隔,间隔时间大约2秒。

例2把参数设为变量

# coding=utf-8import pytestimport time
class Test_case:
  def test_case1(self):

    print("执行用例1")

def test_case2(self):
    print("执行用例2")

rerun_times = 3
jiange = 3
@pytest.mark.flaky(reruns=rerun_times,reruns_delay=jiange)
def test_case3():
  print("执行用例3")

  assert 1 == 2

pytest.main(["-s","test_study.py"])

执行结果:
collected 3 items

test_study.py session

执行用例1

.执行用例2

.执行用例3

Rsession

执行用例3

Rsession

执行用例3

Rsession

执行用例3

F

 

转载自:https://mp.weixin.qq.com/s/IRXyFi3Yg-26-YD6PT0jSg

pytest失败重跑

标签:命令   sni   间隔   span   session   str   lan   utf-8   过程   

原文地址:https://www.cnblogs.com/wclcz/p/14033985.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!