上图是试验的目录结构

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的更多相关文章

  1. 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 ...

  2. pytest:通过scope控制fixture的作用范围

    一.fixture里面有个参数scope,通过scope可以控制fixture的作用范围,根据作用范围大小划分:session>module>class>function,具体作用范 ...

  3. jsp中iframe所包含的页面调用父页面的function方法

    a.jsp中写了注册的Ext窗体loginWindow,也用iframe包含了另一个b.jsp,当在b.jsp中也有点击注册的链接,这时需要用到调用a.jsp中的loginWindow,因为如果你重新 ...

  4. abap function module中的异常处理

    1: 定义一个有异常抛出的function module.  (zfm_moudle6),  该函数中有符合exceptions中的异常,将会自动将exceptions中的异常抛出. FUNCTION ...

  5. 在function module 中向数据库插入数据

    http://www.sapjx.com/abap-function-module.html 1: 应该在function module 中向数据库插入数据

  6. Pytest fixture及conftest详解

    前言 fixture是在测试函数运行前后,由pytest执行的外壳函数.fixture中的代码可以定制,满足多变的测试需求,包括定义传入测试中的数据集.配置测试前系统的初始状态.为批量测试提供数据源等 ...

  7. pytest fixture 利用 params参数实现用例集合

    @pytest.fixture有一个params参数,接受一个列表,列表中每个数据都可以作为用例的输入.也就说有多少数据,就会形成多少用例.如下面例子,就形成3条用例 test_parametrizi ...

  8. Pytest测试框架(三):pytest fixture 用法

    xUnit style 结构的 fixture用于初始化测试函数, pytest fixture是对传统的 xUnit 架构的setup/teardown功能的改进.pytest fixture为测试 ...

  9. pytest--fixture基本使用(主要用来进行测试环境的初始化和清理,fixture中的params参数还可以用来进行参数化)

    fixture fixture修饰器来标记固定的工厂函数,在其他函数,模块,类或整个工程调用它时会被激活并优先执行,通常会被用于完成预置处理和重复操作. 方法: fixture(scope=" ...

随机推荐

  1. PostgreSQL的架构

    是最先进的数据库.他的第一个版本在1989年发布,从那时开始,他得到了很多扩展.根据db-enginers上的排名情况,PostgreSQL目前在数据库领域排名第四. 本篇博客,我们来讨论一下Post ...

  2. 为互联网业务而生:阿里云全球首发云Cassandra服务!

    引言:十年沉淀.全球宽表排名第一.阿里云首发云Cassandra服务 ApsaraDB for Cassandra是基于开源Apache Cassandra,融合阿里云数据库DBaaS能力的分布式No ...

  3. HZOI20190828模拟32题解

    题面:https://www.cnblogs.com/Juve/articles/11428730.html chinese: 考虑$\sum\limits_{i=0}^{n*m}i*f_i$的意义: ...

  4. day49作业

    结合前端,django,MySQL,pymysql模块实现数据库数据动态展示到前端 效果图: 数据交互流程 urls.py代码: from django.conf.urls import url fr ...

  5. yolo-windows检测高分辨率图像及封装应用

    YOLO训练自己的数据集的一些心得 封装yolo-windows为动态链接库 yolo-windows源码 项目开源代码:LargeImageDetect-yolo-windows 由于项目需要,需要 ...

  6. dubbo入门学习(四)-----dubbo配置

    配置来源 首先,从Dubbo支持的配置来源说起,默认有四种配置来源: JVM System Properties,-D参数 Externalized Configuration,外部化配置 Servi ...

  7. MyBatis-Spring(一)--搭建步骤

    MyBatis-Spring项目不是Sring项目的子框架,而是由MyBatis社区开发的,所以在使用之前首先要导入mybatis-spring包,我是通过maven添加的依赖: <depend ...

  8. Java内功修炼系列一观察者模式

    观察者模式又称发布-订阅模式,就是观察者通过订阅被观察者,或关注被观察者,从而实时更新观察者的信息.比如我们玩微博的时候,如果关注了一些博主,那么当博主发动态时,在首页微博列表中就会自动更新这些博主发 ...

  9. 处理iphone的 .play() 不能播放问题

    一.添加音乐 <audio id="Jaudio" src="shake.mp3" preload loop="loop" contr ...

  10. 洛谷P2827 蚯蚓

    传送门 pts85/90(90应该是个意外,第一次交是90之后都是85了): 优先队列模拟题意 #include<iostream> #include<cstdio> #inc ...