Вот как у меня написаны тесты:
**config.ini**
idlist: 1
Class MyConfig:
def __init__(self):
self.id = config.idlist
....
**conftest.py**
@pytest.fixture(scope='module')
def obj()
myobj = new MyConfig()
yield myobj
@pytest.fixture(scope='module')
def get_id(obj)
yield obj.id
**test_mytests.py**
def test_a_sample_test(get_id):
assert get_id == 1
def test_a_sample_even test(get_id):
assert get_id % 2 == 0
Теперь я хочу изменить idlist (из config.ini) на список номеров, как показано ниже
idlist = [1, 2, 3, 4, ....]
Я хочу иметь возможность автоматически запускать прогон для запуска всех тестов, которые начинаются с test_
в зависимости от количества идентификаторов в idlist. как показано ниже
new config.ini
idlist: id1, id2, id3, id4, ... idN
def get_id(obj):
for anId in obj.id
yield anId **<--- notice that the id's change.**
наконец тесты ..
**test_mytests.py**
def test_a_sample_test(get_id):
assert get_id == 1
def test_a_sample_even test(get_id):
assert get_id % 2 == 0
Я хочу:
- Вызывать get_id, чтобы каждый раз выдавать мне новый идентификатор
- 2 теста должны выполняться для каждого идентификатора, «полученного» get_id, так как идентификатор изменился. (в основном, повторите весь набор тестов / сессию для каждого идентификатора)
Как я могу это сделать?
Я не знаю список идентификаторов, чтобы сделать pytest.mark.parameterize () перед каждым тестом, так как идентификатор изменяется и не является постоянным.