阅读 63

pytest_addoption : 命令行参数

场景
1.一般公司测试环境都有多套,测试的时候我们需要在不同的环境下进行
2.在自动化执行时,在不同的环境下我们要指定不同的系统配置,每次修改框架代码配置这个很不自动化
3.pytest_addoption注册参数 这个就很好的解决了这个问题,它能在执行命令的时候传递参数

基本用法

#conftest.py
# 注册自定义参数num到配置对象
def pytest_addoption(parser):
    parser.addoption(
        "--num_1", action="store", default=‘0‘, help="my option: 说明"
    )
    parser.addoption(
        "--num_2", action="store", default=‘0‘, help="my option: 说明"
    )


# 从配置对象获取值
@pytest.fixture(scope=‘session‘, autouse=True)
def num_1(request):
    return request.config.getoption("--num_1")


@pytest.fixture(scope=‘session‘, autouse=True)
def num_2(request):
    return request.config.getoption("--num_2")

#test_02.py
def test_run(num_1, num_2):
    print(num_1)
    print(num_2)

#不带参数运行
test_02.py::test_run PASSED                                              num_1:  0
num_2:  0
=== 1 passed in 0.05s 

#带参数运行:pytest -s -v test_02.py --num_1=11 --num_2=22
test_02.py::test_run 
num_1:  11
num_2:  22
PASSED
=== 1 passed in 0.06s

参数含义
name:自定义命令行参数的名字,可以是:"foo", "-foo" 或 "--foo";
action:在命令行中遇到此参数时要采取的基本操作类型;
nargs:应该使用的命令行参数的数量;
const:某些操作和nargs选择所需的常量值;
default:如果参数不在命令行中,则生成的默认值。
type:命令行参数应该转换为的类型;
choices:参数允许值的容器;
help:对参数作用的简要说明;

原文:https://www.cnblogs.com/Bruin/p/15266678.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐