Как поместить parser.addoption в тестовый модуль, а не в conftest.py? - PullRequest
1 голос
/ 31 января 2020

У меня есть следующее

conftest.py:

def pytest_addoption(parser):
    parser.addoption('--sopt', action='store', default=None, help='Source Data Storage')

my_test.py:

@pytest.fixture(scope='module', autouse=True)
def sopt(pytestconfig):
    return pytestconfig.getoption('sopt')


def test_mtest(sopt):
    //pytest code

При запуске этого теста он отлично работает python3 -m pytest --sopt=aaaaa, но при перемещении

def pytest_addoption(parser):
    parser.addoption('--sopt', action='store', default=None, help='Source Data Storage')

из conftest.py в my_test.py он не работает и завершается ошибкой со следующей ошибкой:

ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...]
__main__.py: error: unrecognized arguments: --sopt=aaaaa

Мне не нравится иметь отдельный файл всего за 2 строки кода.

Есть ли способ поместить parser.addoption из conftest.py в my_test.py и заставить его работать?

1 Ответ

2 голосов
/ 01 февраля 2020

Нет. Ссылка на документацию pytest_addoption:

Примечание:

Эта функция должна быть реализована только в плагинах или conftest.py файлах, расположенных в тестах root каталог из-за того, как pytest обнаруживает плагины во время запуска .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...