Pytest Finalizers - 执行顺序

2024-01-23

我正在编写 py.test 程序,考虑以下 py.test 夹具代码:

@pytest.fixture(scope="class")
def my_fixture(request):
    def fin1():
        print("fin1")
request.addfinalizer(fin1)
    def fin2():
        print("fin2")
request.addfinalizer(fin2)

执行顺序是什么?我没有在文档中找到任何有关终结器执行顺序的提及。

提前致谢。


我想最简单的方法就是尝试运行你的代码-s并查看打印发生的顺序。

我建议改为使用收益固定装置,这样您就可以轻松地显式控制拆卸顺序:

@pytest.yield_fixture(scope="class")
def my_fixture():
    # do setup
    yield
    fin1()
    fin2()

从 pytest 3.0(即将发布)开始,这也可以通过使用yield与正常的@pytest.fixture装饰器,并且将是推荐的拆卸方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pytest Finalizers - 执行顺序 的相关文章

  • 测试 post 请求时 Django 消息中间件问题

    我正在尝试测试一个 UpdateView 它将一条消息添加到重定向的成功页面 看来我的问题来自messages因为 pytest 返回 django contrib messages api MessageFailure 如果不安装 dja
  • 如何从测试内部访问 py.test capsys?

    py test 文档说我应该将 capsys 参数添加到我的测试方法中 但就我而言 这似乎不可能 class testAll unittest TestCase def setUp self self cwd os path abspath
  • 如果定义了构造函数,pytest 跳过测试类

    我有以下通过 py test 运行的单元测试代码 构造函数的存在会使整个类在运行时跳过 py test v s 已收集 0 件 已跳过 1 件 谁能向我解释 py test 的这种行为吗 我有兴趣了解 py test 行为 我知道不需要构造
  • 如何为异步流服务器编写 pytest 夹具?

    我一直在尝试学习 asyncio 但找不到任何创建可用于测试服务器代码的 pytest 夹具的示例 一旦服务器启动 我猜它会阻止其他一切 因此测试永远不会运行 pytest asyncio 是否有办法在单独的线程中运行固定装置或其他东西 还
  • Selenium 登录测试不接受 pytest 设备登录或拒绝连接

    我变得绝望 因为我似乎找不到一个我认为每个人都会使用的解决方案 我想使用 selenium 和 pytest 以及 live server url 来测试简单的登录 根据 pytest django 文档 一个简单的固定装置称为live s
  • 如何使用 django-pytest 跟踪 Django 重定向?

    在设置一个档案索引视图 https docs djangoproject com en 2 0 ref class based views generic date based django views generic dates Arch
  • 在 pytest 中参数化并运行单个测试

    如何从配置了参数化的集合中运行单个测试 假设我有以下测试方法 pytest mark parametrize PARAMETERS LIST PARAMETERS VALUES def test my feature self param1
  • 在测试中检查 CLI 的退出代码

    我正在为命令行工具编写自动化测试 本质上 我想使用各种选项调用 CLI 并测试退出代码和 或输出 我的测试如下所示 from mymodule cli tool import main def test args capfd with py
  • 参数化测试也取决于 pytest 中的参数化值

    我有一个测试 我有一个设置方法 应该收到一个dataset和一个测试函数 应该为每个运行data in dataset 基本上我需要类似的东西 datasetA data1 a data2 a data3 a datasetB data1
  • 如何从视图中删除单元测试的“@oidc.login_required”?

    I use 烧瓶样机 questions tagged flask oidc用于用户登录和pytest questions tagged pytest供测试用 对于单元测试 我想 删除 oidc require login 我怎样才能做到这
  • 由于 __init__ 构造函数而产生的 Pytest 集合警告

    我一直在使用 Pytest 和 Selenium Web 驱动程序自学测试自动化 我所有的测试函数都在一个名为测试网络 py 它位于名为的目录中tests 我将所有函数分开 并将它们放在一个名为的单独目录中的自己的文件中测试用例 例如 这就
  • 使用 Pytest 的参数化添加测试功能的描述

    当其中一个测试失败时 可以在测试正在测试的内容的参数化中添加描述 快速了解测试失败的原因 有时您不知道测试失败的原因 您必须查看代码 通过每个测试的描述 您就可以知道 例如 pytest mark parametrize num1 num2
  • pytest 与 setup.py 测试

    我使用说明 描述了here https pytest org latest goodpractices html integrating with setuptools python setup py test pytest runner
  • 从 PYCHARM 运行时使 PYTEST 更安静

    更新 下面显示的消息不受 pytest 各种 q 安静选项控制 它们来自 TeamCity 插件 请参阅下面我的回答 原文 我已经阅读了用于沉默 pytest 的现有堆栈溢出答案 但没有人告诉我如何沉默我收到的大量冗余 测试通过 消息 我有
  • 如果多个测试有特定异常,则停止 pytest 测试

    我想使用停止测试套件pytest exit 如果任何测试因特定异常而失败 例如 50 个测试 其中任何一个都可能在某个时刻因该异常而失败 如果这些测试中至少有 2 个测试因该异常而失败 我想停止执行 我试图保留一个全局计数器 一个固定装置s
  • 为什么最简单的 requests_mock 示例在 pytest 中失败?

    我有一个特殊的问题requests mock 我想用它pytest测试我的 API 包装器库 我尝试过使用requests mock 文档中的第一个示例 http requests mock readthedocs io en latest
  • 使用 Pytest 捕获 SystemExit 消息

    我正在使用 pytest 编写测试 我遇到了一些函数抛出异常的情况SystemExit如果输入错误 终端上会显示一些错误消息 我想为以下情况编写测试SystemExit抛出并验证输出错误消息中是否有特定字符串 这是代码 def test v
  • pytest 是否有类似 google test 的非致命 EXPECT_* 行为?

    我更熟悉谷歌测试框架并了解他们支持的主要行为对ASSERT vs EXPECT 这是致命和非致命断言模式 来自文档 https github com google googletest blob master googletest docs
  • Django:在单独的线程中使用相同的测试数据库

    我正在使用具有以下数据库设置的测试数据库运行 pytests DATABASES default ENGINE django db backends postgresql psycopg2 NAME postgres USER someth
  • 让tox使用pyenv设置的Python版本

    我似乎无法集中精力管理 Python 版本 当我跑步时tox 我可以立即看到它使用的是 Python 3 7 9 tox py39 commands 0 gt coverage run m pytest test session start

随机推荐

  • Android Studio 禁用换行

    我在 Android Studio 上有这个奇怪的换行符 我想禁用它 因为它让我害怕 It s also available under the context menu
  • 放弃对 JRE 1.3 的支持

    我们提供了一个流行的开源 Java FTP 库 称为edtFTPj http www enterprisedt com products edtftpj overview html 我们希望放弃对 JRE 1 3 的支持 这将清理代码库 并
  • 将 Python 字典列表转换为 Postgresql json 数组

    我正在尝试将 jsonb 元素的 Python 2 7 列表插入到具有数据类型列的 Postgresql 9 4 表中 jsonb 这是一些代码 import json anArray name Joe age 51 yob 1964 ge
  • 通过手写汇编调用本机代码

    我正在尝试从托管程序集中调用本机函数 我已经在预编译库上完成了此操作 一切都很顺利 目前我正在建立自己的图书馆 但我无法完成这项工作 本机 DLL 源代码如下 define DERM SIMD EXPORT declspec dllexpo
  • 春天。 @RequestBody 的映射字段与 @PathVariable

    现在我有这样的代码 RestController public class ChildController RequestMapping value parents parentId addChild method RequestMetho
  • 从选定的数据库中选择选项值

    我有一个小问题 我有一个 edit php 页面 该页面列出了可以编辑的产品信息 我运行一个查询 while rows mysql fetch assoc query echo
  • 如何使用 Cython 将 Python 3 编译为 C

    我正在尝试将 Python 3 脚本转换为 C 然后将该 C 文件编译为可执行文件 我有这个简单的 python 脚本 def greet name print Hello 0 format name if len name gt 0 el
  • 更改命名空间前缀 WCF 信封

    我想知道是否可以更改 WCF SOAP 请求的命名空间前缀 正如您在下面的示例中看到的 The Envelope 的命名空间为 http www w3 org 2005 08 addressing 前缀为 a 我想将其更改为 foo 我怎样
  • 如何将任务的已取消状态传播到继续任务

    我在我的应用程序中使用任务并行库 我有一个任务 我们称之为 DoSomething 可能会被取消 无论任务出现故障 取消还是成功完成 我都会向该任务附加一个延续来执行一些清理工作 在启动此任务的代码中 我想返回一个 Task 对象 其状态
  • SWIG C++ 到 Python:警告(362):运算符=被忽略

    我正在将 C 类导出到 Python 我注意到在编译过程中 SWIG 发出以下警告 Warning 362 operator ignored 我不确定为什么操作符超载 因为它在SWIG 文档 http www swig org Doc1 3
  • camera2 捕获的图片 - 从 YUV_420_888 转换为 NV21

    通过camera2 API 我们接收以下格式的图像对象YUV 420 888 然后我们使用以下函数转换为NV21 private static byte YUV 420 888toNV21 Image image byte nv21 Byt
  • Oracle中INSTR和LIKE有什么区别?

    有人可以告诉我两者之间的区别吗INSTR and LIKE在甲骨文中 Oracle10g中哪一个更快 这取决于数据和模式 如果你使用like a 那么 Oracle 可以使用 BTree 索引来查找匹配项 因为它可以以模式开头搜索 BTre
  • Angular CLI 无法创建新项目

    如何从 angular cli 创建新项目 Angular CLI 有问题 已经关门了 我认为仍然存在问题https github com angular angular cli issues 5543 event 1009616731 h
  • 故事板静态单元:dequeueReusableCellWithIdentifier 返回 nil

    使用故事板 静态单元格cellForRowAtIndexPath 线 UITableViewCell cell tableView dequeueReusableCellWithIdentifier CellIdentifier 总是返回n
  • Capybara webkit 不传递来自 Angular 的参数

    我正在尝试将 selenium 测试套件移植到 capybara webkit Rails 应用程序在 Rails 视图中嵌入了一个角度应用程序 并且其行为不符合预期webkit 像这样的测试 需要 spec helper feature
  • CSS 线性渐变和 Canvas 线性渐变与不透明度设置不同

    我想在画布上实现 CSS 定义的相同线性渐变外观 使用了一种在不使用透明度设置之前效果很好的方法 当使用相同的线性渐变颜色设置定义 rgba 颜色值时 结果看起来不一样 请参阅以下链接 JSFiddle Example https jsfi
  • 如何通过 System.out.println("Morning") 创建对象,REACHABLE?

    在下面的声明中 System out println Morning 包含值 Morning 的对象是在字符串池中创建的 而且我们没有明确存储它的地址 但这个对象仍然是可达的 如果我们尝试重新做System out println Morn
  • C++ 中 main 之前发生了什么?

    我知道在 C 中 在应用程序可以开始之前main 某些实体必须 初始化全局变量 将堆栈指针设置为最低堆栈区域地址 假设堆栈向上增长 问题 1 做这些事情的实体是什么 谁写的 问题 2 C 中还有其他东西吗 我假设对象构造函数和初始化都是在应
  • 如何将浮点数存储为文本而不丢失精度?

    就像问题所说的那样 与 截断的 字符串表示形式之间的转换可能会影响其精度 但是将它们存储为其他格式 例如 pickle 会使它们不可读 是的 我也想要这个 如何在文本中存储浮点数而不丢失精度 将其存储为二进制或其幂 gt gt gt 3 4
  • Pytest Finalizers - 执行顺序

    我正在编写 py test 程序 考虑以下 py test 夹具代码 pytest fixture scope class def my fixture request def fin1 print fin1 request addfina