pytest扫盲17--自定义命令行参数

当存在多套测试环境时,通过自定义命令行参数,快速切换host

查看pytest系统命令行参数:pytest -h

1、编辑 conftest.py:

import os
import pytest
def pytest_addoption(parser):
    '''增加命令行参数 --cmdhost'''
    parser.addoption(
        "--cmdhost",
        action="store",
        # default: 默认值,命令行没有指定host时,默认用该参数值
        default="http://xx.xx.xx.xx:xxxx",
        help="test case project host address"
    )

@pytest.fixture(scope="session", autouse=True)  # autouse=True自动执行该前置操作
def host(request):
    '''获取命令行参数,给到环境变量'''
    os.environ["host"] = request.config.getoption("--cmdhost")
    print("当前用例运行测试环境:%s"%os.environ["host"])

pytest -h 查看到增加了如下自定义参数

2、执行测试代码,不带host

pytest.main(['-s', '-q', 'test_demo_16_relevance.py'])
E:personalpython38python.exe E:/personal/GitWorkSpace/pytest_basic/main.py
test_demo_16_relevance.py::TestLogin::test_1[login0]
test_demo_16_relevance.py::TestLogin::test_2[login0]
test_demo_16_relevance.py::TestLogin::test_3
当前用例运行测试环境:http://xx.xx.xx.xx:xxxx

正在操作登录,账号:admin, 密码:123456
登录成功
F
正在操作登录,账号:admin, 密码:123456
登录成功
..
================================== FAILURES ===================================

3、切换host

pytest.main(['-s', '-q', '--cmdhost=http://www.xxx.xxx', 'test_demo_16_relevance.py'])
E:personalpython38python.exe E:/personal/GitWorkSpace/pytest_basic/main.py
test_demo_16_relevance.py::TestLogin::test_1[login0]
test_demo_16_relevance.py::TestLogin::test_2[login0]
test_demo_16_relevance.py::TestLogin::test_3
当前用例运行测试环境:http://www.xxx.xxx

正在操作登录,账号:admin, 密码:123456
登录成功
F
正在操作登录,账号:admin, 密码:123456
登录成功
..
================================== FAILURES ===================================
原文地址:https://www.cnblogs.com/xiaohuboke/p/13564157.html