需要满足以下条件才可以运行pytest-rerunfailures
(未验证,不确定)
- Python 3.6 ~ 3.9 或者 PyPy3
- pytest 5.0 或者 更高版本
pip install pytest-rerunfailures -i https://pypi.tuna.tsinghua.edu.cn/simple
3、命令行或者装饰器的方式重新运行失败的用例
方式一:命令行的方式
- 要重新运行所有失败的用例,添加
--reruns num
参数,其中num
表示最大运行次数:# 失败重运行最大次数为5次 pytest --reruns 5
- 要在两次重运行之间增加延时,则可以使用
--reruns-delay
参数,指定下一次重新运行之前需要等待的秒数:pytest --reruns 3 --reruns-delay 10
- 在单个测试用例添加flaky装饰器,比如:
@pytest.mark.flaky(reruns=5, reruns_delay=2)
表示重运行最大次数为5次,下一次开始前等待2s - 代码:
import pytest @pytest.mark.flaky(reruns=3, reruns_delay=2) def test_01(): import random assert random.choice([True, False, False, False])
- 结果:
============================= test session starts ============================== collecting ... collected 1 item test_01.py::test_01 RERUN [100%] test_01.py::test_01 PASSED [100%] ========================== 1 passed, 1 rerun in 5.07s ==========================
- 命令行参数:
--reruns n
重新运行次数,--reruns-delay m
等待运行秒数 - 装饰器参数:
reruns=n
重新运行次数,reruns_delay=m
等待运行秒数 - 兼容性问题:
- 不可以和fixture装饰器
@pytest.fixture()
一起使用 - 该插件与pytest-xdist的
--looponfail
标志不兼容 - 该插件与核心
--pod
表示不兼容
- 不可以和fixture装饰器
参考文章:https://www.cnblogs.com/poloyy/p/12687308.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)