Sto eseguendo il debug di un errore di test intermittente. Per questo scopo voglio scaricare molte informazioni di debug se un test fallisce. Il dumping del debug è un processo abbastanza lento che produce molti dati, quindi non voglio farlo per ogni test.Rileva se il test ha avuto esito negativo all'interno dell'apparecchio
Sto usando pytest ea dispositivi autouse rendimento dovrebbe funzionare grande
@pytest.yield_fixture(scope="function", autouse=True)
def dump_on_failue(request):
prepare_debug_dump()
yield
if test_failed(request):
debug_dump()
Il problema è che non riesco a capire come faccio a rilevare se test è riuscito o meno. C'era a questions already e anche notare 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)
Purtroppo questo codice non funziona più. Non ci sono simboli rep_setup e rep_calls nell'oggetto nodo. Ho provato a scavare la richiesta e il nodo oggetto, ma senza fortuna.
Qualcuno sa come rilevare se il test è fallito?
L'hook 'pytest_runtest_makereport' nell'esempio che hai elencato * aggiunge * quegli attributi' rep_ * '. Sei sicuro di averlo aggiunto anche tu? –