开发者

pytest用例执行顺序和跳过执行详解

开发者 https://www.devze.com 2023-02-08 09:24 出处:网络 作者: 此时
目录1.py文件的执行顺序2. 改变用例的执行顺序 -装饰器@pytest.mark.run(order=x)3. 分组执行用例1)在pytest.ini中配置分组2)测试用例加入标记3)运行用例4) 多个分组用例运行需要用or进行连接5)运行除标记外的用
目录
  • 1.py文件的执行顺序
  • 2. 改变用例的执行顺序 -装饰器@pytest.mark.run(order=x)
  • 3. 分组执行用例
    • 1)在pytest.ini中配置分组
    • 2)测试用例加入标记
    • 3)运行用例
    • 4) 多个分组用例运行需要用or进行连接
    • 5)运行除标记外的用例
  • 4. pytest跳过测试用例

    1.py文件的执行顺序

    pytest默认按字母顺序去执行的(小写英文--->大写英文--->0-9数字)

    setup_module->setup_claas->setup_function->testcase->teardown_function->teardown_claas->teardown_module

    1)文件之间按照ASCLL码排序

    2)文件内默认按照从上到下进行执行

    文件内的用例按照从上往下执行。

    pytest用例执行顺序和跳过执行详解

    2. 改变用例的执行顺序 -装饰器@pytest.mark.run(order=x)

    @pytest.mark.run(order=x) 需要pip install pytest-ord编程客栈ering

    @pytest.mark.run(order=x)
    
    # x是整数(可以是正数也可以是负数)
    
    # 全为正数或负数时,值越小,优先级越高
    
    # 既有正数又有负数时,正数优先级高(-1,2,-3的执行顺序是2,-3,-1)
    
    # 0是正整数中最小的,优先级最高
    
    @pytest.mark.run(order=0)
    
    # 两个0是,就按照正常顺序执行

    已经改变了用例执行规则,针对于是全局的,会先执行完@pytest.mark.run(order=1)才会执行order=2的用例

    其实总体来说,这个插件的实用场景不是很多,如果需要指定某个用例第一个执行和最后执行,可以用该插件实现。

    如果要按照你指定的顺序执行下去,需要在每个用例前都加上@pytest.mark.run(order=1),其中order中的数字需递增。

     

    方式一

    方式二

    方式三

    第一个执行

    :@ pytest.mark.first

    :@ pytest.mark.run(开发者_C入门'first')

    :@ pytest.mark.run(order=1)

    第二个执行

    :@ pytest.mark.second

    :@ pytest.mark.run('second')

    :@ pytest.mark.run(order=2)

    倒数第二个执行

    :@ pytest.mark.second_to_last

    :@ pytest.mark.run('second_to_last')

    :@ pytest.mark.run(order=-2)

    最后一个执行

    :@pytest.mark.last

    :@ pytest.mark.run('last')

    :@ pytest.mark.run(order=-1)

    3. 分组执行用例

    在工作中有的时候我们并不需要执行所有用例,所以就会用到分组执行啦。

    这里同样也要用到装饰器@pytest.mark

    1)在pytest.ini中配置分组

    [pytest]
    markers=g1
    g2

    这个设置的作用就是标记用例进行分组

    pytest用例执行顺序和跳过执行详解

    2)测试用例加入标记

    pytest用例执行顺序和跳过执行详解

    3)运行用例

    需要输入pytest -m '分组名'

    pytest用例执行顺序和跳过执行详解

    pytest用例执行顺序和跳过执行详解

    4) 多个分组用例运行需要用or进行连接

    pytest用例执行顺序和跳过执行详解

    pytest用例执行顺序和跳过执行详解

    5)运行除标记外的用例

    pytest用例执行顺序和跳过执行详解

    pytest用例执行顺序和跳过执行详解

    pytest.main(['-vs', 'zmytest/test_order.py', '-m', "not g2 and n编程ot g1"])

    4. pytest跳过测试用例

    pytest.mark.skip:跳过用例执行

    跳过执行,跳过分为有条件跳过和无条件跳过

    1、无条件跳过

    @pytest.mark.skip(reason="XXX")

    2、有条件跳过

    @pytest.mark.skipif(age>=18,reason='已成年')

    1)无条件跳过

    @pytest.mark.skip(reason="XXX")
    @pytest.mark.skip

    pytest用例执行顺序和跳过执行详解

    pytest用例执行顺序和跳过执行详解

    2)有条件跳过

    @pytest.mark.skipijsf(条件,reason='')这个方法就是当满足条件时跳过被标记的用例,什么是被标记?就是python这个装饰器下面的第一条用例

    pytest用例执行顺序和跳过执行详解

     到此这篇关于pytest用例执行顺序和跳过执行详解的文章就介绍到这了,更多相关pytest用例执行顺序和跳过执行内容请搜索我们以前的文章或继续浏览下www.devze.com面的相关文章希望大家以后多多支持我们!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号