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

一、前言

  cmd or pycharm的terminal输入命令:pip install -U pytest,安装pytest的同时会安装pytest-rerunfailures。

二、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,需要指定最大运行的次数

三、小试牛刀

  (1)rerun指定的失败的测试用例,指定max次数,未指定delay时间

1 import pytest
2 
3 @pytest.mark.flaky(reruns=5)
4 def test_rerunfailures():
5     import random
6     assert random.choice([True,False,False])

  执行结果:

  (2)rerun指定的失败的测试用例,指定max次数,指定delay时间

1 import pytest
2 
3 @pytest.mark.flaky(reruns=5,reruns_delay=10)
4 def test_rerunfailures():
5     import random
6     assert random.choice([True,False,False])

  Notes:

  • 如果指定了用例的重复运行次数和delay,在命令行添加--reruns和--reruns-delay对这些用例时不会生效的
  • 不可以和fixture装饰器一起使用:@pytest.fixture()
  • 该插件与pytest-xdist的--looponfail标记不兼容
  • 该插件与核心--pdb标记不兼容

 

参考链接:https://www.cnblogs.com/poloyy/p/12687308.html

 

posted @ 2022-04-22 22:48  方缘  阅读(440)  评论(0编辑  收藏  举报