Аргумент командной строки pytest для @ pytest.mark.parametrize

Можно ли найти аргументы командной строки в pytest при распределенном выполнении теста?

py.test -n 16  tests/tests_*****.py --env="TestEnvironemnt" --html=XYZ/Reports.html

os.sys.argv отображается как '-c' в моем коде, если я выполняю свой код pytest


person Sk Arif    schedule 23.08.2016    source источник
comment
Я не уверен, правильно ли я понимаю ваш вопрос, но не этот пример ответить?   -  person The Compiler    schedule 24.08.2016
comment
Ссылка выше у меня не работает. Однако следующее: docs.pytest.org/en/latest/example/ simple.html   -  person Jean-Francois T.    schedule 07.11.2016


Ответы (1)


Вопрос не очень ясен, но я предполагаю, что вы хотите добавить параметр «--env» и прочитать его значение.

Способ сделать это:

  1. Создайте файл conftest.py в своем проекте (если он еще не существует) и добавьте параметр --env

#conftest.py
def pytest_addoption(parser):
    parser.addoption('--env', action="store", dest="env", default="",
    help="Define name of test environment")

  1. [необязательно] Назначьте фикстуре env_name значение параметра --env

#conftest.py
@pytest.fixture
def env_name(request):
    return request.config.getoption('env')

  1. В своей тестовой функции используйте фикстуру env_name, из которой вы можете получить значение параметра. Если не определено, используйте вместо этого фикстуру request и получите значение с помощью request.config.getoption('env')

#test.py
def test1(env_name):
    print("Test Environment is: {}".format(env_name))
person Jean-Francois T.    schedule 07.11.2016