pytest_runtest_makereport() получает два аргумента, элемент и вызов. В item я могу найти funcarg, который я создал для этого теста, а в call я могу найти информацию об исключении (если есть):
def pytest_runtest_makereport (item, call):
my_funcarg = item.funcargs['name']
my_funcarg.excinfo = call.excinfo
К сожалению, exinfo заполняется как для сбоев, так и для пропусков. Чтобы отличить, мне нужно взглянуть на аргумент отчета для pytest_report_teststatus():
def pytest_report_teststatus (report):
if report.when == 'call':
if report.failed:
failed = True
elif report.skipped:
skipped = True
else:
passed = True
Это отличная информация, но я не могу сопоставить ее с funcarg, который я создал для теста. Я просмотрел аргумент отчета (отчет TestReport) и не могу найти способ вернуться к элементу, переданному в pytest_runtest_makereport(), или созданному мной funcarg.
Где я могу получить доступ к обоим?