Вы не можете сделать это с помощью прибора;однако вы можете написать хук pytest_generate_tests
, который будет параметризовать тестовые аргументы val1
, val2
.Пример:
# conftest.py
import pytest
def pytest_addoption(parser):
parser.addoption('--range', action='store', type=int, default=None)
def pytest_generate_tests(metafunc):
if all(arg in metafunc.fixturenames for arg in ('val1', 'val2')):
hi = metafunc.config.getoption('--range')
if hi is not None:
variables = [(i, i) for i in range(hi)]
metafunc.parametrize("val1,val2", variables)
Модуль тестирования:
def test_case1(val1, val2):
assert val1 == val2
Запуск теста с другим номером --range
приведет к другому количеству тестов:
$ pytest -v --range 1
...
test_spam.py::test_case1[0-0] PASSED
...
$ pytest -v --range 5
...
test_spam.py::test_case1[0-0] PASSED
test_spam.py::test_case1[1-1] PASSED
test_spam.py::test_case1[2-2] PASSED
test_spam.py::test_case1[3-3] PASSED
test_spam.py::test_case1[4-4] PASSED
...