pytest - 自定义参数
快速入们
conftest.py: 文件名字固定写法,自定义命令行参数信息
import pytest
hosts = {
"dev": "http://dev.xxxx.com",
"test": "http://test.xxxx.com",
"uat": "http://uat.xxxx.com",
"prod": "http://prod.xxxx.com",
}
# 自定义参数
def pytest_addoption(parser):
parser.addoption("--host", # 名称,在命令行中接收该选项后面的值
action="store", # 对命令行中后面的值进行存储操作
dest="host_value", # 存储值的名称,可以省略,直接pytestconfig.getoption("--host")
default="test", # --host 的默认值
choices=["dev", "test", "uat", "prod"], # --host的可选值
help="""
dev:表示开发环境,
test:表示测试环境
uat:表示功能测试环境
prod:表示生产环境
default:测试环境
""")
@pytest.fixture(scope="session")
def get_cmdopts(pytestconfig): # 方法名字可以随便写,但是需要与测试用例使用的地方保持一致
if hosts.get(pytestconfig.getoption("host_value")):
return hosts.get(pytestconfig.getoption("host_value"))
# # fixture 写法二:
# @pytest.fixture(scope="session")
# def get_cmdopts(request): # request 参数名字固定写法
# if hosts.get(request.config.getoption("--host")):
# return hosts.get(request.config.getoption("--host"))
test_addoption.py: 测试用例文件,使用命令行中自定义的参数
import pytest
def test_option(get_cmdopts): # get_cmdopts: 名字要与conftest.py中用fixture标记的方法保持一致
print(get_cmdopts)
命令行指定参数值:
--host 的默认值:
如果运行非指定参数会出错:
pytest -h 可以查看自定义参数信息
总结:
- pytest_addoption 自定义注册参数
- 被pytest.fixture()修饰的方法: 获得命令行的自定义参数信息,并返回
参考:
https://blog.csdn.net/u010454117/article/details/119120349?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-4-119120349-blog-117929050.pc_relevant_default&spm=1001.2101.3001.4242.3&utm_relevant_index=7
本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/16273291.html