В каком вызове py.test я могу найти данные «item» и «report»?
pytest_runtest_makereport () получает два аргумента, элемент и вызов. По пункту я могу найти funcarg, который я создал для этого теста, а по вызову я могу найти информацию об исключении (если есть):
def pytest_runtest_makereport (item, call):
my_funcarg = item.funcargs['name']
my_funcarg.excinfo = call.excinfo
К сожалению, excinfo заполняется как для сбоев, так и для пропусков. Чтобы различить, мне нужно взглянуть на аргумент отчета для 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, который я создал.
Где я могу получить доступ к обоим?