Mam debugowanie przerywanego niepowodzenia testu. W tym celu chcę zrzucić wiele informacji debugowania, jeśli test się nie powiódł. Dumpingowe debugowanie jest dość powolnym procesem, który generuje dużo danych, więc nie chcę tego robić dla każdego testu.Wykryj, czy test zakończył się niepowodzeniem w urządzeniu
Używam pytest i wydajności urządzenie autouse powinien działać wielki
@pytest.yield_fixture(scope="function", autouse=True)
def dump_on_failue(request):
prepare_debug_dump()
yield
if test_failed(request):
debug_dump()
Problem polega na tym, że nie mogę dowiedzieć się, w jaki sposób wykryć, czy próba nie powiodła się, czy też nie. Było a questions already a nawet pamiętać on pytest website:
if request.node.rep_setup.failed:
print ("setting up a test failed!", request.node.nodeid)
elif request.node.rep_setup.passed:
if request.node.rep_call.failed:
print ("executing test failed", request.node.nodeid)
Niestety ten kod już nie działa. W obiekcie węzła nie ma symboli rep_setup i rep_calls. Próbowałem wykopać obiekt zapytania i węzła, ale bez powodzenia.
Ktoś wie, jak wykryć, czy test się nie powiódł?
Haczyk 'pytest_runtest_makereport' w podanym przykładzie * dodaje * te atrybuty" rep_ * ". Czy na pewno to też dodałeś? –