Если есть несколько параметров, имеющих дубликаты, есть ли способ отключить выполнение теста с дублирующимися параметрами.
Примечание. Я поместил минимальный фрагмент кода для решения проблемы, с которой я столкнулся.
test_file .py
import pytest
def pytest_generate_tests(metafunc):
"""
Parse the fixture dynamically.
"""
for fixture in metafunc.fixturenames:
if fixture == ("sample_fixture"):
param_list = load_sample_tests()
if param_list:
metafunc.parametrize(fixture, param_list)
def load_sample_tests():
param_list = []
for each in ["a", "b", "a", "c"]:
param_list.append(pytest.param(each, id=each))
return param_list
def test_one(sample_fixture):
pass
Вывод:
collected 4 items
test_one.py::test_one[a0] PASSED [ 25%]
test_one.py::test_one[b] PASSED [ 50%]
test_one.py::test_one[a1] PASSED [ 75%]
test_one.py::test_one[c] PASSED [100%]
Я не хочу, чтобы контрольный пример выполнялся два раза с параметром a
. Есть ли какой-либо параметр или конфигурации, чтобы отключить его? или мне приходится их дедуплицировать вручную?