pytest用例执行顺序和跳过执行详解
1.py文件的执行顺序
pytest默认按字母顺序去执行的(小写英文--->大写英文--->0-9数字)
setup_module->setup_claas->setup_function->testcase->teardown_function->teardown_claas->teardown_module
1)文件之间按照ASCLL码排序
2)文件内默认按照从上到下进行执行
文件内的用例按照从上往下执行。

2. 改变用例的执行顺序 -装饰器@pytest.mark.run(order=x)
@pytest.mark.run(order=x) 需要pip install pytest-ordering
@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('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
这个设置的作用就是标记用例进行分组

2)测试用例加入标记

3)运行用例
需要输入pytest -m '分组名'


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


5)运行除标记外的用例


pytest.main(['-vs', 'zmytest/test_order.py', '-m', "not g2 and not 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


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

到此这篇关于pytest用例执行顺序和跳过执行详解的文章就介绍到这了,更多相关pytest用例执行顺序和跳过执行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
python语言线程标准库threading.local解读总结
在本篇文章里我们给各位整理了一篇关于python threading.local源码解读的相关文章知识点,有需要的朋友们可以学习下。2019-11-11
Python django框架输入汉字,数字,字符生成二维码实现详解
这篇文章主要介绍了Python django框架输入汉字,数字,字符转成二维码实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-09-09
深度学习TextRNN的tensorflow1.14实现示例
这篇文章主要介绍了深度学习TextRNN的tensorflow1.14实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-01-01
python 类的继承 实例方法.静态方法.类方法的代码解析
这篇文章主要介绍了python 类的继承 实例方法.静态方法.类方法的代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-08-08
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
这篇文章主要介绍了基于python实现FTP文件上传与下载操作(ftp&sftp协议),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-04-04


最新评论