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)的区别?哪些模型是参数化模型,哪些模型是非参数化模型?

pytest文档9-参数化parametrize

pytest文档9-参数化parametrize

pytest-04(参数化parametrize的使用)

pytest 8 参数化parametrize

pytest文档77 - parametrize 参数化跳过部分用例(pytest.param)