pytest 的 yield
前言:1、当 pytest.fixture(scope="module") 时,pytest的yieId 类似unittest的teartownclass
2、当 pytest.fixture(scope="function") 时,pytest的yieId 类似unittest的teartown
3、其中一个用例出现异常,不会影响yield后面的teardown执行,运行结果互不影响
4、如果在setup就异常了,那么是不会去执行yield后面的teardown内容了
# coding=utf-8
import pytest @pytest.fixture(scope="module")
def login():
print("登录成功") yield
print("用例执行完成,收尾") def test1(login):
print('操作1')
print("-----------------------------------------------") def test12(login):
print('操作2')
print("-----------------------------------------------") def test3(login):
print('操作3') print("-----------------------------------------------") if __name__ == '__main__':
pytest.main(['-s', "text.fix2.py"])
运行结果:

# coding=utf-8
import pytest @pytest.fixture(scope="function")
def login():
print("登录成功") yield
print("用例执行完成,收尾") def test1(login):
print('操作1')
print("-----------------------------------------------") def test12(login):
print('操作2')
print("-----------------------------------------------") def test3(login):
print('操作3') print("-----------------------------------------------") if __name__ == '__main__':
pytest.main(['-s', "text.fix2.py"])
运行结果:

pytest 的 yield的更多相关文章
- pytest(7)-yield与终结函数
通过上一篇文章,我们已经知道了pytest中,可以使用Fixture来完成运行测试用例之前的一些操作如连接数据库,以及测试执行之后自动去做一些善后工作如清空脏数据.关闭数据库连接等. 我们已经学会了f ...
- 学习-Pytest(五)yield操作
1.fixture的teardown操作并不是独立的函数,用yield关键字呼唤teardown操作 2.scope="module" 1.fixture参数scope=”modu ...
- pytest四:fixture_yield 实现 teardown
既然有 setup 那就有 teardown,fixture 里面的 teardown 用 yield 来唤醒 teardown的执行 在所有用例执行完后执行:yield import pytest ...
- Pytest自动化测试 - 简易教程
简介 pytest是动态编程语言Python专用的测试框架,它具有易于上手.功能强大.可扩展性好.兼容性强.效率高.第三方插件丰富等特点. 功能特征: 完整的文档,包括安装,教程和PDF文档 简单而又 ...
- pytest 5. fixture之yield实现teardown
前言: 1.前面讲的是在用例前加前置条件,相当于setup,既然有setup那就有teardown,fixture里面的teardown用yield来唤醒teardown的执行 看以下的代码: #!/ ...
- pytest 框架自动化Selenium 之yield 使用
环境 python 3.7 由于3.0-3.5以下部分pytest可能有部分兼容问题安装建议2.7-2.9,3.5-最新 pip install pytest专属 pytest框架包 pip inst ...
- pytest文档6-fixture之yield实现teardown
前言 上一篇讲到fixture通过scope参数控制setup级别,既然有setup作为用例之前前的操作,用例执行完之后那肯定也有teardown操作. 这里用到fixture的teardown操作并 ...
- 《带你装B,带你飞》pytest修仙之路5 - yield操作
1. 简介 上一篇中,我们刚刚实现了在每个用例之前执行初始化操作,那么用例执行完之后如需要清除数据(或还原)操作,可以使用 yield 来实现.fixture通过scope参数控制setup级别,既然 ...
- 【pytest】teardown里的yield和addfinalizer
在之前介绍pytest中的fixture用法的文章中https://zhuanlan.zhihu.com/p/87775743,提到了teardown的实现. 最近在翻pytest官方文档的时候,又发 ...
随机推荐
- 进程状态TASK_UNINTERRUPTIBLE
进程拥有以下几种状态:就绪/运行状态.等待状态(可以被中断打断).等待状态(不可以被中断打断).停止状态和僵死状态. TASK_RUNNING: 正在运行或处于就绪状态:就绪状态是指进程申请到了CPU ...
- CF-825E Minimal Labels 反向拓扑排序
http://codeforces.com/contest/825/problem/E 一道裸的拓扑排序题.为什么需要反向拓扑排序呢?因为一条大下标指向小下标的边可能会导致小下标更晚分配到号码,导致字 ...
- 20165309 技能学习经验与C语言
技能学习经验与C语言 技能学习经验 你有什么技能比大多人(超过90%以上)更好?针对这个技能的获取你有什么成功的经验?与老师博客中的学习经验有什么共通之处? 从小到大,或是出于兴趣.或是出于父母的要求 ...
- Excel文件的读写
import xlsxwriter,xlrd import sys,os.path fname = 'zm6.xlsx' if not os.path.isfile(fname): print ('文 ...
- Leetcode 870. 优势洗牌
870. 优势洗牌 显示英文描述 我的提交返回竞赛 用户通过次数49 用户尝试次数92 通过次数49 提交次数192 题目难度Medium 给定两个大小相等的数组 A 和 B,A 相对于 B 的 ...
- MapReduce(二)
MapReduce(二) mapreduce 将Text转化为对象进行处理数据. 根据一来说,将date,classname,name,subject,score变为对象属性 我的数据是:是有重复的. ...
- C++ leetcode Longest Substring Without Repeating Characters
要开学了,不开森.键盘声音有点大,担心会吵到舍友.今年要当个可爱的技术宅呀~ 题目:Given a string, find the length of the longest substring w ...
- NOI1995石子合并&多种石子合并
题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...
- 【转】EF 获取类的属性并排除特定属性(getType().GetProperties())
当获取一个类型(class)的所有属性时,想排除指定属性,该如何操作? 比如:EF中一个实体类型UserEntity,通过反射获取这个类的属性时,想排除这个为映射的字段ID 使用以下方法即可! Pro ...
- 自签名证书说明——自签名证书的Issuer和Subject是一样的。不安全的原因是:没有得到专业SSL证书颁发的机构的技术支持?比如使用不安全的1024位非对称密钥对,有效期设置很长等
一般的数字证书产品的主题通常含有如下字段:公用名称 (Common Name) 简称:CN 字段,对于 SSL 证书,一般为网站域名:而对于代码签名证书则为申请单位名称:而对于客户端证书则为证书申请者 ...