Wie kann ich feststellen, ob ein Test erfolgreich war oder fehlgeschlagen ist, indem ich das Item-Objekt untersucht habe, das an pytest_runtest_teardown übergeben wurde?

8

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:

%Vor%

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.

    
Jimmy Cuadra 20.06.2014, 01:44
quelle

2 Antworten

4

Sie können call.excinfo auch in pytest_runtest_makereport:

berücksichtigen %Vor%

Das Aufrufobjekt enthält eine ganze Reihe zusätzlicher Informationen (Teststartzeit, Stoppzeit usw.).

Siehe: Ссылка

%Vor%     
Sharad 06.11.2016, 06:17
quelle
1

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:

  1. Wir können dem 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 .
  2. Wenn testsfailed & gt; last_testsfailed_status - der letzte Test, bei dem der Lauf fehlgeschlagen ist.
%Vor%     
Dekel 01.11.2016 02:30
quelle

Tags und Links