В какой выноске py.test я могу найти данные как «элемент», так и «отчет»?

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.

Где я могу получить доступ к обоим?

6
задан Aran-Fey 4 September 2018 в 06:27
поделиться