一、前言
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。