是否可以在 pytest_generate_tests() 中使用固定装置?

2024-03-28

我有一些固定装置conftest.py在实际测试功能中运行良好。但是,我想使用参数化一些测试pytest_generate_tests()基于其中一些装置的数据。

我想做的(简化):

-- conftest.py --
# my fixture returns a list of device names.
@pytest.fixture(scope="module")
def device_list(something):
    return ['dev1', 'dev2', 'dev3', 'test']

-- test001.py --
# generate tests using the device_list fixture I defined above.
def pytest_generate_tests(metafunc):
    metafunc.parametrize('devices', itertools.chain(device_list), ids=repr)

# A test that is parametrized by the above function.
def test_do_stuff(devices):
    assert "dev" in devices

# Output should/would be:
dev1: pass
dev2: pass
dev3: pass
test: FAIL

当然,我遇到的问题是pytest_generate_tests(),它抱怨说device_list未定义。如果我尝试传递它,pytest_generate_tests(metafunc, device_list),我收到错误。

E   pluggy.callers.HookCallError: hook call must provide argument 'device_list'

我想这样做的原因是我使用它device_list列出不同文件中的一堆不同测试,所以我想使用pytest_generate_tests()使用相同的列表参数化测试。

这是不可能的吗?使用有什么意义pytest_generate_tests()如果我必须在该函数内复制我的装置?


根据我多年来收集的信息,固定装置与 pytest 的收集后阶段紧密耦合。我曾多次尝试做类似的事情,但从未真正成功。

相反,您可以创建一个函数来完成您的装置将要做的事情,并在generate_tests挂钩内调用它。然后,如果您仍然需要它作为固定装置,请再次调用它(或保存结果或其他)。

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

是否可以在 pytest_generate_tests() 中使用固定装置? 的相关文章

  • 如何替换 Pandas Dataframe 中不在列表中的所有值? [复制]

    这个问题在这里已经有答案了 我有一个值列表 如何替换 Dataframe 列中不在给定值列表中的所有值 例如 gt gt gt df pd DataFrame D ND D garbage columns S gt gt gt df S 0
  • 如何计算 pandas datetime 对象的均值和方差?

    如何计算 YYYY MM DD 形式的 python 日期时间对象的汇总统计数据 均值和标准差 我想对具有不同 ID 的不同日期时间对象组执行此操作 数据如下 import datetime as dt df pd DataFrame Da
  • 类的 IPython 表示

    我正在使用我创建的模块尝试 IPython 但它没有显示类对象的实际表示 相反 它显示类似的内容 TheClass module TheClass name I heavily在这个模块中使用元类 我有真正有意义的类表示 应该向用户显示 是
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • 我应该使用 Python 双端队列还是列表作为堆栈? [复制]

    这个问题在这里已经有答案了 我想要一个可以用作堆栈的 Python 对象 使用双端队列还是列表更好 元素数量较少还是数量较多有什么区别 您的情况可能会根据您的应用程序和具体用例而有所不同 但在一般情况下 列表非常适合堆栈 append is
  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • Python 3d 绘图设置固定色阶

    我正在尝试绘制两个 3d 数组 第一个数组的 z 值在范围内 0 15 0 15 第二个来自 0 001 0 001 当我绘图时 色标自动遵循数据范围 如何设置自定义比例 我不想看到 0 001 的浅色 而应该看到 0 15 的浅色 如何修
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 使用 Python Oauthlib 通过服务帐户验证 Google API

    我不想使用适用于 Python 的 Google API 客户端库 但仍想使用 Python 访问 Google APIOauthlib https github com idan oauthlib 创建服务帐户后谷歌开发者控制台 http
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 如何使用 AWS Lambda Python 读取 AWS S3 存储的 Word 文档(.doc 和 .docx)文件内容?

    我的场景是 我尝试使用 python 实现从 Aws Lambda 读取 AWS 存储的 S3 word 文档 doc 和 docx 文件内容 下面的代码是我使用的 我的问题是我可以获取文件名 但无法读取内容 def lambda hand
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • 重新分配唯一值 - pandas DataFrame

    我在尝试着assign unique值在pandas df给特定的个人 For the df below Area and Place 会一起弥补unique不同的价值观jobs 这些值将分配给个人 总体目标是使用尽可能少的个人 诀窍在于这
  • pandas.read_csv 将列名移动一倍

    我正在使用位于的 ALL zip 文件here http www fec gov disclosurep PDownload do 我的目标是用它创建一个 pandas DataFrame 但是 如果我跑 data pd read csv
  • 将索引与值交换的最快方法

    考虑pd Series s s pd Series list abcdefghij list ABCDEFGHIJ s A a B b C c D d E e F f G g H h I i J j dtype object 交换索引和值并

随机推荐

  • 如何在 Maven 安装目标中跳过测试,同时在 Maven 测试目标中运行测试?

    我有一个多模块 Maven 项目 集成和单元测试位于同一文件夹 src test java 中 集成测试标记为 Category IntegrationTest class 我想最终得到以下设置 如果我跑mvn install 我希望编译所
  • 如何将覆盖函数插入 if else 语句

    我意识到 使用基本逻辑 我无法将覆盖函数放入 if else 语句中 因为它会覆盖所有内容 但是我仍然需要放入 if else 语句来为 segue 做准备 因此 我正在工作的代码的工作方式是 如果用户点击按钮两次 他们就赢得了游戏 因此转
  • 更改注册/丢失密码“操作链接”URL、标题和修改错误页面。主题我的登录插件驱动的 WordPress 网络多站点

    我已经为我的客户建立了一个巨大的网络多站点 每月接收 1000 个新用户 并且已经有 5 个克隆网络站点 并且还在不断增加 它有一个静态主页 主题我的登录插件在定制的 Divi 子节点上运行主题 在自定义的登录页面上 登录本身工作正常 下面
  • 无法在azure函数运行时v1中创建python函数应用程序

    我正在使用 v1 运行时创建一个函数应用程序 直到 9 月 24 日我才能够在 v1 环境中使用 python 创建函数应用程序 但从那时起我无法看到 python 选项 官方文档说它支持python v1 虽然是实验性的 参考这个指南 h
  • 在 Atom 编辑器初始化脚本中使用树视图

    我正在尝试为 Atom 编辑器编写一个初始化脚本 以添加自定义命令 以便能够使用一个组合键 而不是两个组合键 在树视图中显示当前打开的编辑器文件 这是一个示例代码 它使一些东西有所不同 以明确它通常的外观 atom commands add
  • HTML 元素的坐标

    我将创建一个选择 套索 用户可以使用它来选择表格的部分 我认为在该区域上放置一个 div 比尝试操纵单元格边界要容易得多 如果您不明白我的意思 请打开一个电子表格并拖动一个区域 我希望 div 与单元格边框完美对齐 我很清楚如何做到这一点
  • Django ORM,将 None 日期时间作为 0 插入 MySQL

    我有一个 MySQL 数据库 除了 Django 之外 还被另一个应用程序使用 该应用程序使用 0000 00 00 00 00 00 作为日期时间的默认值 Django v1 5 5 解释 0000 00 00 00 00 00 日期时间
  • Python3:导入错误:/lib/x86_64-linux-gnu/libQt5Core.so.5:找不到版本“Qt_5.15”

    我使用 Qt Designer 在 Qt 上创建了一个窗口 当我启动该应用程序时 我收到 ImportError 感觉我的系统中没有安装该库 但预览可以在 Qt Designer 中使用 设计文件完整代码 coding utf 8 Form
  • IOError 和 OSError 之间的区别?

    我总是对函数是否会引发 IOError 或 OSError 或两者 感到困惑 这些异常类型背后的原则规则是什么 它们之间有什么区别以及何时引发 我最初认为 OSError 是针对权限拒绝之类的事情 但是在没有权限的情况下打开文件会引发 IO
  • 如何调查 WCF 通过 GET 发出 400 错误请求?

    以下 WCF 端点与 WCF 测试客户端配合良好 OperationContract WebGet ResponseFormat WebMessageFormat Xml BodyStyle WebMessageBodyStyle Bare
  • 不使用jquery实现signalR

    是否可以在不使用 Jquery 的情况下实现 SignalR 我想为 Titanium 创建一个模块 但我不知道 SignalR 对 DOM 的依赖程度如何 jQuery 只用于 ajax 请求吗 你认为这有多难 嗯 这并非不可能 但这需要
  • 在 Flink 流中使用静态 DataSet 丰富 DataStream

    我正在编写一个 Flink 流程序 其中我需要使用一些静态数据集 信息库 IB 来丰富用户事件的数据流 对于例如假设我们有一个买家的静态数据集 并且有一个传入的事件点击流 对于每个事件 我们希望添加一个布尔标志来指示事件的执行者是否是买家
  • Unblessing Perl 对象并为 Convert_blessed 构造 TO_JSON 方法

    In 这个答案 https stackoverflow com a 4185679 632407我找到了一个简单的推荐TO JSON方法 将受祝福的对象序列化为 JSON 时需要该方法 sub TO JSON return shift 有人
  • 为什么Python中tuple和str的子类不支持弱引用?

    从版本 3 8 开始 Python 的关于弱引用的文档 https docs python org 3 library weakref html states 一些内置类型 例如 list 和 dict 不直接支持弱引用 但可以通过子类化来
  • SQL 查询 - 比较不同项目上的两个项目

    您好 我是 SQL 代码的新手 想知道是否可以获得以下输出 EVT John Paul Difference A1 1 2 1 A2 2 3 1 来自以下数据源 EVT PERS RANK A1 John 1 A1 Paul 2 A1 Ri
  • 在 iPad 上的 IOS 6 中,初始旋转始终为纵向,之后始终正确旋转

    在 iOS 5 X 下正常工作并支持所有方向的运输应用程序中 针对 iOS 6 构建的它始终以纵向启动 即使 ipad 模拟器处于横向状态也是如此 我确实添加了新的旋转方法 BOOL shouldAutorotate NS AVAILABL
  • dotnet build 如何选择输出名称

    首先我来解释一下引起这个问题的问题 如果我使用创建一个新项目dotnet new并指定一个随机项目名称 narg 然后做完之后dotnet restore dotnet build从默认的 bash 终端 gt 最终输出名称是always
  • 缓存属性与 Lazy

    在 NET 4 中 还可以使用以下带有缓存属性的代码片段编写System Lazy
  • 如何从用户空间访问(如果可能)内核空间?

    Linux 内核中用户内存和内核内存到底是如何区分的 在保证内核空间安全方面 从用户空间向内核地址空间写入的方式有哪些不同 我知道的一种方法是通过系统调用 我们可以使用多种系统调用 但最终都是系统调用 即使在系统调用中 我们也会将数据发送到
  • 是否可以在 pytest_generate_tests() 中使用固定装置?

    我有一些固定装置conftest py在实际测试功能中运行良好 但是 我想使用参数化一些测试pytest generate tests 基于其中一些装置的数据 我想做的 简化 conftest py my fixture returns a