Я пытаюсь параметризовать тест, который генерируется из параметров cmdline в conftest.py.
#!/usr/bin/env python
import pytest
import test
def pytest_addoption(parser):
parser.addoption("--low", action="store", type=int, help="low")
parser.addoption("--high", action="store",type=int, help="high")
@pytest.fixture(scope="session", autouse=True)
def user(request):
return request.config.getoption("low")
@pytest.fixture(scope="session", autouse=True)
def rang(request):
return request.config.getoption("high")
#test_file.py
def data(low, high):
return list(range(low, high))
@pytest.mark.parametrize("num", data(10, 20))
def test(num):
assert num < 1000
Я хотел бы выполнить команду типа "pytest --low"= 10 --high = 100 test_file.py ".Код работает нормально с @ pytest.mark.parametrize ("num", data (x, y)) для диапазона значений между x и y.Я не хочу предоставлять какие-либо значения в параметризации, кроме низкого и высокого.Если я кодирую что-то вроде @ pytest.mark.parametrize («num», data (low, high)), выдается ошибка.Есть ли способ, которым я могу получить эту работу по параметризации?Я знаю, что код работает, когда мы генерируем список вне метода.Но я хочу написать метод для генерации списка и использовать этот список в параметризации.
Есть ли какой-нибудь способ, которым я могу получить доступ к этим параметрам низкого и высокого cmdline где-нибудь в test_file.py?