pytest 第三方插件

本文介绍了pytest的三个第三方插件:pytest-ordering用于顺序执行测试,pytest-rerunfailures实现失败重试,pytest-xdist支持并行执行测试,以提高测试效率。通过示例展示了各插件的安装和使用方法。
摘要由CSDN通过智能技术生成

目录

前言:

顺序执行:pytest-ordering

失败重试:pytest-rerunfailures

并行执行:pytest-xdist


前言:

pytest 是一个广泛使用的 Python 测试框架。它具有强大的测试运行器、测试驱动开发和测试结果可视化等功能。除此之外,pytest 还支持许多第三方插件,这些插件可以为测试带来更多的便利和功能。

本文只介绍pytest-orderingpytest-rerunfailurespytest-xdist三种插件,报告方面的插件会另起篇幅进行介绍。

顺序执行:pytest-ordering

  • 安装:pip install pytest-ordering
  • 使用方式:在方法上加入下面装饰器
    1. 标记于被测试函数,@pytest.mark.run(order=x)
    2. 根据 order 传入的参数来解决运行顺序
    3. order 值全为正数或全为负数时,运行顺序:值越小,优先级越高
    4. 正数和负数同时存在:正数优先级高

默认情况下,pytest 是根据测试方法名由小到大执行的,可以通过第三方插件包改变其运行顺序。

# test_abc.py
#默认执行方式
#示例:
    import pytest
    class Test:
        def test_a(self):
            print("------->test_a")
            assert 1
        def test_b(self):
            print("------->test_b")
            assert 0
    if __name__ == '__main__':
        pytest.main(["-s","test_abc.py"])
#执行结果:
    test_abc.py 
    ------->test_a # 默认第一个运行
    .
    ------->test_b # 默认第二个运行
    F

改变顺序后

#示例:
    import pytest
    class Test:
        @pytest.mark.run(order=2)
        def test_a(self):
            print("------->test_a")
            assert 1

        @pytest.mark.run(order=1)
        def test_b(self):
            print("------->test_b")
            assert 0
    if __name__ == '__main__':
             pytest.main(["-s","test_abc.py"])
#执行结果:
    test_abc.py
    ------->test_b # order=1 优先运行
    F
    ------->test_a # order=2 晚于 order=1 运行
    .

失败重试:pytest-rerunfailures

  • 安装: pip install pytest-rerunfailures

  • 使用方式:pytest --reruns 重试次数 --reruns-delay 次数之间的延时设置(单位:秒)

比如:pytest --reruns 2 --reruns-dela

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值