pytest(10): 自定义命令行参数,获取传参

2023-10-31

Hook 方法之 pytest_addoption :
pytest_addoption 可以让用户注册一个自定义的命令行参数,方便用户将数据传递给 pytest;

 

这个 Hook 方法一般和 内置 fixture pytestconfig 配合使用,pytest_addoption 注册命令行参数,pytestconfig 通过配置对象读取参数的值;
 

 pytest_addoption 注册、pytestconfig 获取命令行参数 :

# conftest.py
 
import pytest
 
# 注册自定义参数 cmdopt 到配置对象
def pytest_addoption(parser):
    parser.addoption("--cmdopt", action="store",
                     default="None",
                     help="将自定义命令行参数 ’--cmdopt' 添加到 pytest 配置中")
 
# 从配置对象获取 cmdopt 的值
@pytest.fixture(scope='session')
def cmdopt(pytestconfig):
    return pytestconfig.getoption('--cmdopt')
 
# 然后任何 fixture 或测试用例都可以调用 cmdopt 来获得设备信息

parser.addoption() 参数说明:

name:自定义命令行参数的名字,可以是:"foo", "-foo" 或 "--foo";
action:在命令行中遇到此参数时要采取的基本操作类型;
nargs:应该使用的命令行参数的数量;
const:某些操作和nargs选择所需的常量值;
default:如果参数不在命令行中,则生成的默认值。
type:命令行参数应该转换为的类型;
choices:参数允许值的容器;
required:命令行选项是否可以省略(仅可选);
help:对参数作用的简要说明;
metavar:用法消息中参数的名称;
dest:要添加到 parse_args() 返回的对象中的属性的名称;

例:

#conftest.py

#conftest.py

import pytest

# 注册自定义参数 cmdopt 到配置对象
def pytest_addoption(parser):
    parser.addoption("--cmdopt", action="store",
                     default="None",
                     help="将自定义命令行参数 ’--cmdopt' 添加到 pytest 配置中")


# 从配置对象获取 cmdopt 的值
@pytest.fixture(scope='session')
def cmdopt(pytestconfig):
    input_arg = pytestconfig.getoption('--cmdopt')
    ht = pytestconfig.getoption('--html')
    print('input_arg',input_arg)
    print('ht', ht)
    return 1234567

# test_demo.py

# test_demo.py


@pytest.mark.parametrize('p1,p2,p3', datas)
def test_01(fixture_f, cmdopt,p1, p2, p3):
    print(p1, p2, p3)

获取到了自定义命令参数  和 自带的html参数 

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

pytest(10): 自定义命令行参数,获取传参 的相关文章

  • 如何查看Databricks中的所有数据库和表

    我想列出 Azure Databricks 中每个数据库中的所有表 所以我希望输出看起来像这样 Database Table name Database1 Table 1 Database1 Table 2 Database1 Table
  • 无法“安装”plpython3u - postgresql

    我正在尝试在 postgresql 中使用 python 语言 像这样的事情 create or replace function test a integer returns integer as if a 2 0 return even
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何使用 Ansible playbook 中的 service_facts 模块检查服务是否存在且未安装在服务器中?

    我用过service facts检查服务是否正在运行并启用 在某些服务器中 未安装特定的软件包 现在 我如何知道这个特定的软件包没有安装在该特定的服务器上service facts module 在 Ansible 剧本中 它显示以下错误
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 类型错误:预期单个张量时的张量列表 - 将 const 与 tf.random_normal 一起使用时

    我有以下 TensorFlow 代码 tf constant tf random normal time step batch size 1 1 我正进入 状态TypeError List of Tensors when single Te
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip

随机推荐

  • Python和Java二选一该学啥?

    Java这种跨平台 可面向对象的编程语言完美解释了它不仅仅只是一种语言 而且自身很强大是一种开发平台 第一 学习过的大家可能都知道它的优势和特性有哪些 比如说它简单性 面向对象 分布式 解释型 可靠 安全 平台无关 可移植 高性能 多线程
  • 分享Visual Studio 2019专业版、企业版密匙

    官网下载地址 https visualstudio microsoft com zh hans downloads 点击进入 Professional产品密钥 NYWVH HT4XC R2WYW 9Y3CM X4V3Y Enterprise
  • 零基础初学前端—新建项目

    对于一个没有基础的新手来说 如何使用 vscode 新建一个前端项目 写一些html页面 并能进行运行 需要吐下几个步骤 新建一个文件夹 在文件夹里新建一个文件 命名为 xxx html 例如 index html 打开 vscode Fi
  • 【Windows】Windows下载使用wget命令

    文章目录 一 前言 介绍 二 安装步骤 2 1 下载 wget 压缩包 2 2 解压到指定的位置 2 3 检查是否安装成功 2 4 是否可以正常下载 一 前言 介绍 wget 是 linux 一个下载文件的工具 可以下载一些软件或从远程服务
  • centos7常用工具包安装

    1 nano yum install y nano 2 wget yum install y wget
  • MySQL的“插入”/“删除+插入”操作——REPLACE

    问题及背景 有一个数据表Table 主键为YYYY MM DD 年 月 日 形式的字符串 存储着本日某事件的信息 该信息每隔若干小时 会根据最新数据重新计算该信息 如果Table中已存在本日记录 需要对其进行 UPDATE 或 DELATE
  • 模型化公务员能力

    1 搜集信息 现象 在较大的行政管理对象中 信息失真是普遍现象 误区 地方统计上报的数据 只要各级管理人员认真负责 严格核实 怎么会有错误 对策 建立及时 真实 全面 立体的信息搜集和分析机制 2 办理公文 现象 领导的批示和交办的事项 往
  • Java System.arraycopy()方法示例

    Java System arraycopy is a native static method to copy elements from the source array to the destination array Java Sys
  • SQLserver 2008数据库迁移 - 导出 方法二 备份法

    前言 由于更换服务器 所以需要对数据库进行备份 到新服务器还原 收到数据库迁移的命令 登上服务器一看 一脸懵B SQLServer 2008完全没用过 于是开始查资料 各种百度 CSDN一顿查 方法一 保存脚本法 点此链接了解详情 方法二
  • keil报错:Symbol set_value multiply define和 incomplete type is not allowed和error:  #65: expected a “;“

    一个是重复定义 一个是不完整类型 一个是缺一个 第一个 重复定义 一般最多的就是两个文件中的变量定义重复而报错 一般这种改一下名就差不多了 而另一种就比较难看出来了 比如 定义一个结构体在sys h的文件中 并在文件中进行了定义和初始化 然
  • Formality流程

    Formality流程 前言 一 formality是什么 二 使用步骤 0 打开formality的gui界面 1 导入svf文件 2 读入verilog文件 3 读入网表文件 4 setup 5 match and verify 6 注
  • 安装 Media Player 11验证最简单的解决方案

    MS说打补丁 我就让它打 结果给我升到了11 还要验证 不爽 搞了半天 最后找到解决方案 好简单将C Program Files Windows Media Player LegitLibM dll改名为legitlib dll 打开Med
  • python网络爬虫模块

    re模块 想在python中使用正则表达式 可以使用re模块来辅助筛选 1 findall 查找数据中所有符合条件的数值 最后的结果以列表形式输出 贪婪匹配 import re res re findall l hello l l 2 fi
  • JavaEE学习 day09

    今天 继续学习了JavaEE 继续做SSM图书管理系统项目 SSM图书管理系统 修改用户 显示修改数据 SSM图书管理系统 修改用户 userid隐藏域 SSM图书管理系统 修改用户 与新增共用一个方法 SSM图书管理系统 删除用户 总结一
  • Python 批量处理PNG、JPG图片 去白边

    每次写论文用seaborn画出来的图白边都很大并且没法调 每次都用PS软件去白边很麻烦 索性写了个脚本 在不改变图片像素密度 尺寸变了 相当于切割 的情况下 批量去掉图片白边 参考了部分网上的程序 自己写了个简单的脚本 放到一个Python
  • python中isalpha的用法_Python string isalpha()用法及代码示例

    在Python中 isalpha 是用于字符串处理的内置方法 如果字符串中的所有字符都是字母 则isalpha 方法返回 True 否则 返回 False 此函数用于检查参数是否包含任何字母字符 例如 ABCDEFGHIJKLMNOPQRS
  • jd抢购工具_Python爬虫教程,京东自动登录,在线抢购商品

    京东抢购 Python爬虫 自动录京东网站 查询商品库存 价格 显示购物车详情等 可以指定抢购商品 自动购买下单 然后手动去京东付款就行 chang log 2017 03 30 实现二维码扫码登陆 2017 06 27 Golang版JD
  • STM32定时器及中断简单程序

    STM32定时器及中断简单 main stm32f103c8t6有3个普通1个高级定时器 每次进入中断服务程序间隔时间为 1 TIM Prescaler 72M 1 TIM Period 1 7199 72M 1 9999 1秒 inclu
  • 内存对齐

    最近为了找工作 狂补了很多基础知识 自以为掌握的不错了 但是真正笔试 面试的时候才发现不懂的知识真得还很多 对很多知识点的掌握和理解都还停留在表层 今天总结一下关于字节对齐的知识 字节对齐在这个找工作季算是被考烂了 笔试考多少次不记得了 面
  • pytest(10): 自定义命令行参数,获取传参

    Hook 方法之 pytest addoption pytest addoption 可以让用户注册一个自定义的命令行参数 方便用户将数据传递给 pytest 这个 Hook 方法一般和 内置 fixture pytestconfig 配合