pytest 插件,

  pytest 插件,

  pytest重新运行插件的测试用例失败(py test-重新运行失败)_ MB 62 af F3 AFB 54 FB _ 51 CTO博客的技术博客

  环境:pytest-rer fail lures只有在同时满足前提条件的情况下才能使用。

  python的版本不能太低;

  pytest 5.0以上;

  背景:通常在做接口测试的时候,经常会遇到网络抖动或者环境问题,导致测试用例失败,而这并不是我们想要的结果;

  如果我们想要重新运行失败的测试用例,这需要通过插件pytest-rer failures来实现。

  安装插件pytest-rerun failures spip安装pytest-rerun failures 执行命令重新执行失败的测试用例:使用-rerun命令行参数选项,并指定运行测试的最大次数:py test test _ add . py-reruns num # num表示重试次数[注意]当重复运行失败的测试用例时,相应的fixture或setup函数也会重新执行(例如,范围参数为method的fixture前置函数)。

  示例:

  代码如下:

  #文件名:test_add.py

  导入pytest

  定义测试_添加01():

  打印(- test_add01 )

  断言1

  定义测试_添加02():

  打印(- test_add02 )

  断言0

  定义测试_添加03():

  打印(- test_add03 )

  断言1

  定义测试_添加04():

  打印(- test_add04 )

  断言1

  if __name__==__main__ :

  Py.main ([-s , test _ add.py])执行命令:pytest。/py test _ study/test _ add . py-reruns 2-s(num=2表示失败的测试用例重试两次,上面的代码中只有test_add02()方法会失败)

  注意:pytest支持多种操作模式下的叠加执行:

  比如同时运行四个进程,失败后运行两次。pytest命令行运行:pytest -n 4 -reruns 2。

  设置添加重新执行的延迟时间,执行失败的测试用例。要增加两次重试之间的延迟时间,请使用- reruns-delay命令行选项来指定下一次测试再次开始之前等待的秒数:

  py-重新运行5-重新运行-延迟10 重新运行指定的测试用例:测试用例失败重新运行的装饰器用法。添加flackly decorator @ pytest . mark . flackly(重新运行=5)并指定最大重新运行次数。

  示例代码如下:

  #-*-编码:utf-8 -*-

  随机导入

  导入pytest

  @ pytest . mark . flackly(重播次数=5次)

  def test_retry1():

  n=random.randint(0,9)

  print(f \ n输出随机数:{n} )

  断言n==2

  @ pytest . mark . flackly(重播次数=5次)

  def test_retry2():

  Assertrandom.choice ([true,false,false])运行结果:[注意]测试结果是测试用例最后一次重新执行的最终结果,即测试用例的执行被判断为失败或通过。

  第一种测试方法:

  第二种测试方法:

  为单个测试用例设置重新运行等待延迟时间的实例代码:

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

  def test_retry1():

  n=random.randint(0,9)

  print(f \ n输出随机数:{n} )

  断言n==2运行结果:

  [注意]

  1.如果测试用例的重新运行次数是通过使用decorator来指定的,那么在命令行参数中添加- reruns将不会对这些测试用例产生影响。

  2.兼容性问题:

  不能和fixture decorator一起使用:@pytest.fixture()这个插件和pytest-xdist的- looponfail logo不兼容。此插件与core -pdb徽标不兼容。期待陌生,拥抱惊喜。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: