Как запустить тест pytest для каждого элемента в списке аргументовPython

Программы на Python
Anonymous
Как запустить тест pytest для каждого элемента в списке аргументов

Сообщение Anonymous »

Предположим, у меня есть список URL-адресов HTTP, например

Код: Выделить всё

endpoints = ["e_1", "e_2", ..., "e_n"]
И я хочу запустить n тестов, по одному для каждой конечной точки. Как я могу это сделать?

Простой способ протестировать все конечные точки одновременно:

Код: Выделить всё

def test_urls():
for e in endpoints:
r = get(e)
assert r.status_code < 400
или что-то в этом роде. Но, как вы можете видеть, это один тест для всех конечных точек n, и мне хотелось бы большей детализации.

Я пробовал использовать такое приспособление, как

Код: Выделить всё

@fixture
def endpoint():
for e in endpoints:
yield e
но, судя по всему, Pytest не очень любит "множественные выходы" в фикстуре и возвращает функцию yield_fixture, имеющую более одной ошибки "yield"

Вернуться в «Python»