pytest-09-参数化parametrize+命令行传参
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest-09-参数化parametrize+命令行传参相关的知识,希望对你有一定的参考价值。
参考技术A (1)测试用例参数化使用装饰器 pytest.mark.parametrize(2)参数组合:获取多个参数化参数的所有组合
根据命令行选项将不同的值传给测试函数
(1)conftest.py添加命令选项,命令行传入参数'--cmdfun'(需要建立cmdfun函数后才能调用)
import pytest
# --------添加命令行选项-------------
def pytest_addoption(parser):
parser.addoption(
'--cmdopt', action='store', default='type1', help='my option: type1 or type2'
)
@pytest.fixture
def cmdopt(request):
return request.config.getoption('--cmdopt')
(2)创建test_sample.py添加用例
import pytest
def test_answer(cmdopt):
if cmdopt == 'type1':
print('first')
elif cmdopt == 'type2':
print('second')
assert 0
if __name__ == '__main__':
pytest.main(['-s', 'test_sample.py'])
(3)启动
pycharm中直接执行即可
不带参数启动:pytest -s test_sample.py 默认启动第一个
带参数启动:pytest -s test_sample.py --cmdopt=type2
以上是关于pytest-09-参数化parametrize+命令行传参的主要内容,如果未能解决你的问题,请参考以下文章
参数化模型(parametric model)和非参数化模型non-parametric model)的区别?哪些模型是参数化模型,哪些模型是非参数化模型?