pytest精髓__fixture
命令:fixture(scope='function',params=None,autouse=False,ids=None,name=None)
参数说明
scope:有四个级别参数函数"function"(默认),类"class",模块"module",整个测试项目"session"。
params:表示fixture的参数化功能。
1 import pytest
2 data = ['老子', '孔子', '孟子']
3
4 @pytest.fixture(params=data,ids=['user=Socrates','user=Platon','user=Aristotle'])
5 def login(request):
6 print('哲学兴起')
7 yield request.param
8 print('哲学消沉')
9
10 class Test_01:
11 def test_01(self, login):
12 print('---用例01---')
13 print('思想家:%s' % login)
14
15 if __name__ == '__main__':
16 pytest.main(['-vs'])

autouse:如果True,自动为用例使用。如果为False则需要设置来激活fixture。
1 import pytest
2 @pytest.fixture(autouse=True)
3 def login():
4 print('\n早出')
5 yield
6 print('\n晚归!')
7 class Test_Login():
8 def test_01(self):
9 print('---小兰---')
10 def test_02(self):
11 print('---任正非---')
12 if __name__ == '__main__':
13 pytest.main(['-vs'])

ids:ids表示在fixture对参数化的内容进行加上标识,比如让别人知道这个传入的参数是什么意思。
name:name参数表示对fixture的名称进行重命名。
1 import pytest
2 @pytest.fixture(name='我是冰箱')
3 def login():
4 print('\n打开冰箱')
5 yield
6 print('\n关上冰箱!')
7 class Test_Login():
8 def test_01(self, 我是冰箱):
9 print('---把大象塞进冰箱---')
10 if __name__ == '__main__':
11 pytest.main(['-vs'])

例子1 fixture调用与不调用的区别
1 import pytest
2 @pytest.fixture()
3 def login():
4 print('登录操作')
5 yield
6 print('退出登录')
7 class Test_Login():
8 def test_01(self, login):
9 print('需要用到登录!')
10 def test_02(self):
11 print('不需要登录!')
12 def test_03(self, login):
13 print('这里需要用到登录!')
14 if __name__ == '__main__':
15 pytest.main(['-vs'])

例子2 异常后依然会执行后置操作
1 import pytest
2 @pytest.fixture()
3 def login():
4 print('登录操作')
5 yield
6 print('退出登录!')
7 class Test_Login():
8 def test_01(self, login):
9 print('需要用到登录!')
10 assert 1==1
11 def test_02(self):
12 print('不需要登录!')
13 def test_03(self, login):
14 print('这里需要用到登录!')
15 assert 1==2
16 if __name__ == '__main__':
17 pytest.main(['-vs']

例子2 同时调用两个fixture
1 import pytest
2 @pytest.fixture()
3 def login():
4 print('登录操作')
5 yield
6 print('退出登录!')
7 @pytest.fixture()
8 def log():
9 print('打开日志功能!')
10 yield
11 print('关闭日志功能!')
12
13 class Test_Login():
14 def test_01(self, login, log):
15 print('需要用到登录!')
16 def test_02(self):
17 print('不需要登录!')
18 def test_03(self, log, login):
19 print('这里需要用到登录!')
20 if __name__ == '__main__':
21 pytest.main(['-vs'])

月缺不改光,剑折不改刚。有志向的人自信自强;
君子量不极,胸吞百川流。有志向的人心有远方;
丈夫非无泪,不洒离别间。有志向的人情深意长;
及时当勉励,岁月不待人。有志向的人不会虚度时光。
人生感意气,功名谁复论。有志向的人看淡名利。
感时思报国,拔剑起蒿莱。有志向的人是最可靠的力量。
愿君学长松,慎勿作桃李。
pytest精髓__fixture的更多相关文章
- pytest进阶之fixture
前言 学pytest就不得不说fixture,fixture是pytest的精髓所在,就像unittest中的setup和teardown一样,如果不学fixture那么使用pytest和使用unit ...
- pytest框架之fixture详细使用
本人之前写了一套基于unnitest框架的UI自动化框架,但是发现了pytest框架之后觉得unnitest太low,现在重头开始学pytest框架,一边学习一边记录,和大家分享,话不多说,那就先从p ...
- Pytest单元测试框架-Pytest环境安装
unittest是python自带的单元测试框架,它封装好了一些校验返回的结果方法和一些用例执行前的初始化操作,使得单元测试易于开展,因为它的易用性,很多同学也拿它来做功能测试和接口测试,只需简单开发 ...
- Pytest学习笔记3-fixture
前言 个人认为,fixture是pytest最精髓的地方,也是学习pytest必会的知识点. fixture用途 用于执行测试前后的初始化操作,比如打开浏览器.准备测试数据.清除之前的测试数据等等 用 ...
- Pytest fixture及conftest详解
前言 fixture是在测试函数运行前后,由pytest执行的外壳函数.fixture中的代码可以定制,满足多变的测试需求,包括定义传入测试中的数据集.配置测试前系统的初始状态.为批量测试提供数据源等 ...
- flask-sqlalchemy、pytest 的单元测试和事务自动回滚
flask-sqlalchemy.pytest 的单元测试和事务自动回滚 使用 flask-sqlalchemy 做数据库时,单元测试可以帮助发现一些可能意想不到的问题,像 delete-cascad ...
- 【转】 C++的精髓——虚函数
虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数! 纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数! 虚函数 引入原 ...
- 大圆满的精髓–肯•威尔伯(KEN WILBER)
作者:肯·威尔伯(Ken Wilber),目前被公认为是“后人本心理学”的最重要的思想家.理论家和发言人,其影响已经跨越了心理学领域,波及哲学和神学领域.由于肯·威尔伯在意识领域的研究极富基础性和开创 ...
- Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725
Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL ...
随机推荐
- Caller 服务调用 - Dapr
前言 上一篇我们讲了使用HttpClient的方式调用,那么如果我们现在需要更换为通过dapr实现服务调用,我们需要做哪些事情呢? Caller.Dapr 入门 如果我们的项目原本使用的是Caller ...
- VMware Workstation 虚拟机详细安装教程
一.介绍篇 VMware Workstation 16 Pro是VMware(威睿公司)于2021年最新发布的一代虚拟机软件,软件的中文名是"VMware 工作站 16 专业版". ...
- 20天等待,申请终于通过,安装和体验IntelliJ IDEA新UI预览版
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于IDEA的预览版 IDEA会启用新的UI,这事情之 ...
- 手写一个仿微信登录的nodejs程序
前言 首先,我们看一下微信开放文档中的一张图: 上面的一幅图中清楚地介绍了微信登录整个过程,下面对图上所示进行总结: 一.二维码的获得 用户打开登录网页后,登录网页后台根据微信OAuth2.0协议向微 ...
- 记一次 .NET 某物管后台服务 卡死分析
一:背景 1. 讲故事 这几个月经常被朋友问,为什么不更新这个系列了,哈哈,确实停了好久,主要还是打基础去了,分析 dump 的能力不在于会灵活使用 windbg,而是对底层知识有一个深厚的理解,比如 ...
- 11.2 Android Studio如何切换主题和更改字体
如何进入设置? 全平台启动界面 Configure-Preferences 主界面 Windows版本:File-Settings Mac版本:Android Studio-Preferences 外 ...
- NC14583 糖糖别胡说,我真的不是签到题目
NC14583 糖糖别胡说,我真的不是签到题目 题目 题目描述 从前,有 \(n\) 只萌萌的糖糖,他们分成了两组一起玩游戏.他们会排成一排,第 \(i\) 只糖糖会随机得到一个能力值 \(b_i\) ...
- 记一次重复造轮子(Obsidian 插件设置说明汉化)
杂谈 #Java脚本 因本人英语不好在使用Obsidian时,一些插件的设置英文多令人头痛.故有写一个的翻译插件介绍和设置脚本的想法.看到有些前人写的一下翻译方法,简直惨目忍睹.竟然要手动.这个应该写 ...
- JDBC(Java Database Connectivity)编写步骤
JDBC是代表一组公共的接口,是Java连接数据库技术: JDBC中的这些公共接口和DBMS数据库厂商提供的实现类(驱动jar),是为了实现Java代码可以连接DBMS,并且操作它里面的数据而声名的. ...
- 超酷炫的转场动画?CSS 轻松拿下!
在 WeGame 的 PC 端官网首页,有着非常多制作精良的基于滚动的动画效果. 这里我简单截取其中 2 个比较有意思的转场动画,大家感受感受.转场动画 1: 转场动画 2: 是不是挺有意思的,整个动 ...