pytest fixture中scope试验,包含function、module、class、session、package
上图是试验的目录结构
conftest.py:存放pytest fixture的文件
import uuid
import pytest @pytest.fixture(scope="module")
def test_module():
return "module"+str(uuid.uuid4()) @pytest.fixture(scope="class")
def test_class():
return "class"+str(uuid.uuid4()) @pytest.fixture(scope="function")
def test_function():
return "function"+str(uuid.uuid4()) @pytest.fixture(scope="session")
def test_session():
return "session"+str(uuid.uuid4()) @pytest.fixture(scope="package")
def test_package():
return "package"+str(uuid.uuid4())
test_class.py:类测试文件
class Test_for_pytest_scope(object):
def test_case1(self,test_module,test_class,test_function,test_session,test_package):
print("testcase/test_class.py-test_case1||" + test_function)
print("testcase/test_class.py-test_case1||"+test_module)
print("testcase/test_class.py-test_case1||"+test_class)
print("testcase/test_class.py-test_case1||" + test_session)
print("testcase/test_class.py-test_case1||" + test_package) def test_case2(self,test_module,test_class,test_function,test_session,test_package):
print("testcase/test_class.py-test_case2||" + test_function)
print("testcase/test_class.py-test_case2||"+test_module)
print("testcase/test_class.py-test_case2||"+test_class)
print("testcase/test_class.py-test_case2||" + test_session)
print("testcase/test_class.py-test_case2||" + test_package)
其它测试文件都是打印fixture的返回信息
下图是打印结果
结论:
package的试验结果和预期有些出入,其它的作用范围大小关系为 function<class<module<session
function | 每个方法和函数执行前都会重新调用一些fixture,得到一个新的uuid |
class | 一个文件(module)内,class内部方法共享数据,函数不共享数据 |
module | 一个文件就是一个module,一个module内只执行一次fixture,且module内共享数据 |
package | uuid都一致,和理解上有些出入,以为不同package会重新调用一次fixture |
session |
一次执行都一致 |
补充:翻看官方文档,发现package还处于试验阶段。
pytest fixture中scope试验,包含function、module、class、session、package的更多相关文章
- pytest 用 @pytest.mark.usefixtures("fixtureName")或@pytest.fixture(scope="function", autouse=True)装饰,实现类似setup和TearDown的功能
conftest.py import pytest @pytest.fixture(scope="class") def class_auto(): print("&qu ...
- pytest:通过scope控制fixture的作用范围
一.fixture里面有个参数scope,通过scope可以控制fixture的作用范围,根据作用范围大小划分:session>module>class>function,具体作用范 ...
- jsp中iframe所包含的页面调用父页面的function方法
a.jsp中写了注册的Ext窗体loginWindow,也用iframe包含了另一个b.jsp,当在b.jsp中也有点击注册的链接,这时需要用到调用a.jsp中的loginWindow,因为如果你重新 ...
- abap function module中的异常处理
1: 定义一个有异常抛出的function module. (zfm_moudle6), 该函数中有符合exceptions中的异常,将会自动将exceptions中的异常抛出. FUNCTION ...
- 在function module 中向数据库插入数据
http://www.sapjx.com/abap-function-module.html 1: 应该在function module 中向数据库插入数据
- Pytest fixture及conftest详解
前言 fixture是在测试函数运行前后,由pytest执行的外壳函数.fixture中的代码可以定制,满足多变的测试需求,包括定义传入测试中的数据集.配置测试前系统的初始状态.为批量测试提供数据源等 ...
- pytest fixture 利用 params参数实现用例集合
@pytest.fixture有一个params参数,接受一个列表,列表中每个数据都可以作为用例的输入.也就说有多少数据,就会形成多少用例.如下面例子,就形成3条用例 test_parametrizi ...
- Pytest测试框架(三):pytest fixture 用法
xUnit style 结构的 fixture用于初始化测试函数, pytest fixture是对传统的 xUnit 架构的setup/teardown功能的改进.pytest fixture为测试 ...
- pytest--fixture基本使用(主要用来进行测试环境的初始化和清理,fixture中的params参数还可以用来进行参数化)
fixture fixture修饰器来标记固定的工厂函数,在其他函数,模块,类或整个工程调用它时会被激活并优先执行,通常会被用于完成预置处理和重复操作. 方法: fixture(scope=" ...
随机推荐
- Luogu P2272 [ZJOI2007]最大半连通子图(Tarjan+dp)
P2272 [ZJOI2007]最大半连通子图 题意 题目描述 一个有向图\(G=(V,E)\)称为半连通的\((Semi-Connected)\),如果满足:\(\forall u,v\in V\) ...
- DataSourceUtils(使用C3P0连接池的工具类)
一.导入jar包(c3p0-0.9.1.2.jar) 2.添加配置文件(放在src下) 配置文件的名称:c3p0.properties 或者 c3p0-config.xml 放在src之下 c3p0. ...
- PostgreSQL的架构
是最先进的数据库.他的第一个版本在1989年发布,从那时开始,他得到了很多扩展.根据db-enginers上的排名情况,PostgreSQL目前在数据库领域排名第四. 本篇博客,我们来讨论一下Post ...
- Python开发第三方必备工具
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style=&quo ...
- Django项目:CRM(客户关系管理系统)--76--66PerfectCRM实现CRM课程作业排名
# classtop_urls.py # ————————64PerfectCRM实现CRM课程排名详情———————— from django.conf.urls import url from b ...
- jquery的each()遍历和ajax传值
页面展示 JS代码部分 /*功能:删除选中用户信息数据*/ function delUser(){ $("#delU").click(function(){ var unoStr ...
- JS中apply和call的联系和区别
以下内容翻译自stackoverflow 链接: http://stackoverflow.com/questions/7238962/function-apply-not-using-thisarg ...
- DVWA 之high级别sql注入
Sqlmap 高级注入,抓包,然后保存数据到1.txt 1.判断注入点 sqlmap -r /root/1.txt -p id --second-order "ht ...
- java锁_IO_NIO_AIO_BIO_GC_Jvm
如何保证线程安全,线程锁有哪些? 同步方法和同步代码块常见的锁:ReentrantLock与synchronized二者区别: (1) 线程A和B都要获取对象O的锁定,假设A获 ...
- 干货来了!2019阿里云合作伙伴峰会SaaS加速器专场回顾合集:嘉宾分享、深度解读
2019年7月26日,在上海举办的阿里云合作伙伴峰会上,阿里云正式发布SaaS生态战略,计划用阿里云的品牌.渠道.资本.方法论.技术加持伙伴,成就亿级营收独角兽. 该生态战略计划招募10家一级SaaS ...