pytest_runtest_makereport() 获取两个参数,item 和 call。从 item 中,我可以找到为此测试创建的 funcarg,从 call 中,我可以找到异常信息(如果有):
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 的项目。
我在哪里可以访问两者?