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=" ...
随机推荐
- python 解决抓取网页中的中文显示乱码问题
关于爬虫乱码有很多各式各样的问题,这里不仅是中文乱码,编码转换.还包括一些如日文.韩文 .俄文.藏文之类的乱码处理,因为解决方式是一致的,故在此统一说明. 网络爬虫出现乱码的原因 源网页编码和爬取下来 ...
- 最小费用最大流——EK+SPFA
终于把最小费用最大流学会了啊-- 各种奇奇怪怪的解释我已经看多了,但在某些大佬的指点下,我终于会了. 原来是个好水的东西. 最小费用最大流是什么? 不可能不知道网络流吧?如果不知道,自行百度去-- 费 ...
- MySQL时间格式转换
1.时间转换成特定字符串 例:select DATE_FORMAT(now(),'%Y-%m-%d %H:%i::%s'); --> '2019-10-16 10:59::18' 2.一种字符串 ...
- 《DSP using MATLAB》Problem 7.28
又是一年五一节,朋友圈都是晒名山大川的,晒脑袋的,我这没钱的待在家里上网转转吧 频率采样法设计带通滤波器,过渡带中有一个样点 代码: %% ++++++++++++++++++++++++++++++ ...
- Java程序员面试题收集(6)
<!————————————————————————————基础题122道,代码题19道————————————————————————————> JAVA相关基础知识1.面向对象的特征有 ...
- hbase 利用rowkey设计进行多条件查询
摘要 本文主要内容是通过合理Hbase 行键(rowkey)设计实现快速的多条件查询,所采用的方法将所有要用于查询中的列经过一些处理后存储在rowkey中,查询时通过rowkey进行查询,提高rowk ...
- mac上python3.x安装 图文详解
mac安装brew报错及解决办法 https://blog.csdn.net/zdp072/article/details/82563320 更改脚本中的资源链接,替换成中国科学技术大学的镜像 htt ...
- HDFS 冗余数据保存
- Linux 定时任务执行 php artisan
*/ * * * * php /www/wwwroot/project/artisan command:exec postNews 5分钟执行一次
- Django项目:CRM(客户关系管理系统)--45--37PerfectCRM实现King_admin添加用户时密码加密
#views # ————————02PerfectCRM创建ADMIN页面———————— from django.shortcuts import render # ————————04Perfe ...