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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!