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

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参数 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值