如何将命令行参数添加到pytest命令

时间:2020-05-29 11:51:59

标签: python python-3.x pytest fixtures

我找不到如何在pytest命令中添加命名命令行参数的方法,因此我可以使用可作为固定装置的自定义参数执行测试。

pytest --my-parameter

def test_something(my_parameter):
    ...

1 个答案:

答案 0 :(得分:0)

为了实现这种行为,应定义pytest_addoption,并使用新的会话级固定装置和pytestconfig固定装置。

# conftest.py
import pytest


def pytest_addoption(parser):
    parser.addoption(
        "--my-parameter", action="store", default=None,
        help=("Parameter description")
    )


@pytest.fixture(scope='session')
def my_parameter(pytestconfig):
    """ Description of changes triggered by parameter. """
    param = pytestconfig.getoption("--my-parameter")
    if param is None:
        assert False, '--my-parameter parameter must be supplied in order to run test suite.'
    return param

# tests.py:
import pytest


def test_something(my_parameter):
    ...