pytest入门七:失败重试与多重校验

发布于:2024-12-18 ⋅ 阅读:(35) ⋅ 点赞:(0)

pytest-rerunfailures

  • 场景
    • 测试失败后要重新运行n次,要在重新运行之间添加延迟时间、间隔n秒再运行。
  • 安装
  • 使用方式
    • 命令行参数:--reruns n(重新运行次数),--reruns-delay m(等待运行秒数)
    • 装饰器参数:reruns=n(重新运行次数),reruns_delay=m(等待运行秒数)

pytest -v -s --reruns 1 test_2.py 

 

pytest-assume

  • 场景
    • 一个方法中些多条断言,中间有一条失败,后面的代码就不执行了,我们希望有失败也能执行完毕。
  • 安装
  • 使用方式
    • pytest.assume(1==4)
    • pytest.assume(2==4)

 

from time import sleep
import pytest

def test_assume():
    assert 1 == 2
    assert False == True
    assert 100 == 200

def test_assume2():
    # assert 1 == 2
    # assert False == True
    # assert 100 == 200
    pytest.assume(1 == 1)
    pytest.assume(False == True)
    pytest.assume(100 == 200)
    pytest.assume(4 != 1)

if __name__ == "__main__":
    pytest.main(['-v', '-s', 'test_2.py'])

pytest -v -s test_2.py::test_assume     

可以看到,第一行断言失败之后,后面的断言也不会执行,包括正常的代码

pytest -v -s test_2.py::test_assume2 

  1. 可以看到,第二行即使断言失败,后面的断言还是会继续执行
  2. 这有助于我们分析和查看到底一共有哪些断言是失败的
  3. 而且最后的代码也还会正常执行,比直接用assert更高效

 


网站公告

今日签到

点亮在社区的每一天
去签到