pytest_runtest_makereport() は item と call の 2 つの引数を取得します。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 に戻る方法が見つかりません。
両方にアクセスできる場所はどこですか?