Pytest ermöglicht es Ihnen, sich für jeden Test in die Teardown-Phase einzuklinken, indem Sie die Funktion pytest_runtest_teardown
in einem Plugin implementieren:
Gibt es ein Attribut oder eine Methode in item
, mit denen ich feststellen kann, ob der Test, der gerade beendet wurde, bestanden oder nicht bestanden wurde? Ich konnte keine Dokumentation für pytest.Item
finden und durch den Quellcode jagen und herumspielen in ipdb
hat nichts offensichtliches verraten.
Die Node
-Klasse hat keine Informationen bezüglich der Status des letzten Tests, aber wir haben den Status der Gesamtzahl der fehlgeschlagenen Tests (in item.session.testsfailed
), und wir können es verwenden:
item.session
-Objekt ein neues Mitglied hinzufügen (nicht so nett, aber du musst Python lieben!). Dieses Mitglied speichert den Status des letzten testsfailed
- item.session.last_testsfailed_status
. testsfailed
& gt; last_testsfailed_status
- der letzte Test, bei dem der Lauf fehlgeschlagen ist.