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 ...
随机推荐
- 会话技术 Cookie+Session
会话:这种在多次HTTP连接间维护用户与同一用户发出的不同请求之间关联的情况称为维护一个会话(session) 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开: 功能:在一次会话 ...
- Python爬取某网站文档数据完整教程(附源码)
基本开发环境 (https://jq.qq.com/?_wv=1027&k=NofUEYzs) Python 3.6 Pycharm 相关模块的使用 (https://jq.qq.com/?_ ...
- 记一次requests请求乱码的问题
太懒了,直接说原因吧: 请求返回的内容含有emoji表情 我的解决办法是替换掉emoji字符: 安装库:pip install emoji 替换:emoji.demojize(CONTENT) 注意, ...
- NOI-Online一日游(小炒肉心态爆炸记)
提高组 早上起来赶来机房,逃掉数竟,耶!(光凯:?? T1 It takes me a long time想T1 努力了一个小时的成果 成功码出暴力代码,时间复杂度\(O(n^2)\) 㵘到15分 刑 ...
- Windows 下如何调试 PowerShell
背景 最近在用 PowerShell 的时候,发现一些地方特别有意思.于是就萌生了看源代码的想法,单看肯定不过瘾,调试起来才有意思.于是就有了这个,记录下. 调试 PowerShell 主要分为两种方 ...
- Java核心知识体系2:注解机制详解
1 Java注解基础 注解是JDK1.5版本开始引入的一个特性,用于对程序代码的说明,可以对包.类.接口.字段.方法参数.局部变量等进行注解. 它主要的作用有以下四方面: 生成javadoc文档,通过 ...
- 电子表格分两级:Excel和WPS是一级,未来5年,75%的人将用二级
你印象中的电子表格软件是哪些? 估计绝大多数人,都认为电子表格软件不就是Excel和WPS吗?顶多再加上永中office么,难道还有其他的电子表格软件不成? 没有错,excel和WPS,还有永中,确实 ...
- 阻塞赋值-非阻塞赋值(LUT,FDC,BUF...)
一.看RTL级综合网络 1.1 FDC FDPE FDRE FDSE均是XILINX FPGA片上资源中四种不同的触发器,具体功能可直接百度 1.2 LUT是实现组合逻辑功能的一张真值表,根据输入值直 ...
- rust实现http时如何读取一个完整的request
用stream.read_to_end是不行的,tcpstream不是文件没有明确的结束符 需要先读取http header节,再找Content-Length header,然后读取body. 这是 ...
- python zip、*、**理解
zip函数 zip()一般传入可迭代对象(不止一个),将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的zip对象(python2返回元组),需要手动使用tuple.list等序列转换成可使 ...