Ein Test kann aus irgendeinem Grund fehlschlagen. Manchmal ist das einfache erneute Ausführen des Tests das Problem erneut zu beheben (z. B. aufgrund von Problemen zugrunde liegende Infrastruktur). Du kannst Tradefed so konfigurieren, dass der Wiederholungsversuch durchgeführt wird automatisch.
Der Kern der automatischen Wiederholungsversuche besteht darin, zu vermeiden, alle Tests noch einmal auszuführen. wird sie erneut ausgeführt, nur die fehlgeschlagenen Tests, was zu großen Einsparungen bei der Ausführungszeit führt.
Tradefed unterstützt auch mehrfache Tests, um festzustellen, Iterationen instabile. In diesem Fall sind alle Tests Der Test schlägt fehl, wenn eine der Iterationen fehlschlägt.
Automatische Wiederholung aktivieren
Der automatische Wiederholungsversuch wird über die
RepeatDecision-Objekt
Hier sind zwei Optionen zum Aktivieren der Funktion verfügbar: max-testcase-run-count
und retry-strategy
.
max-testcase-run-count
bestimmt die Anzahl der Wiederholungen oder Iterationen,
versucht werden kann. Sie legt eine Obergrenze fest, um einen endlosen Wiederholungsversuch zu vermeiden.
retry-strategy
entscheidet, wie ein Wiederholungsversuch unternommen wird. finden Sie in den folgenden Abschnitten
.
Automatische Wiederholungsversuche deaktivieren
Verwenden Sie die folgende Option:
--retry-strategy NO_RETRY
Fehlgeschlagene Wiederholungsversuche
Mit den folgenden Optionen können Sie Testfehler noch einmal versuchen:
--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X
Dadurch wird der Fehler wiederholt, bis er bestanden wurde oder bis die maximale Anzahl von Wiederholungsversuchen erreicht ist. erreicht ist, je nachdem, was zuerst eintritt.
Iterationen
Wenn Sie Tests für eine bestimmte Zeitspanne noch einmal ausführen möchten, können Sie die folgenden Optionen verwenden:
--retry-strategy ITERATIONS --max-testcase-run-count X
Wie sehen die Ergebnisse aus?
Ergebnisreporter erhalten standardmäßig aggregierte Ergebnisse für alle Versuche.
Beispiel: Fail
und Pass
für RETRY_ANY_FAILURE
führen zu einem
zusammengefasste Werte für Pass
, da der Wiederholungsversuch gelöscht wurde.
Die Reporter können die nicht aggregierten Ergebnisse erhalten. Gehen Sie dazu wie folgt vor: müssen sie die Reichweite ISupportGranularResults-Oberfläche , in dem die detaillierten (nicht aggregierten) Ergebnisse unterstützt werden.
Implementierungsdetails
Um die automatische Wiederholung von Fehlern auf Testfallebene zu aktivieren, implementieren Sie ITestFilterReceiver enthalten.
Wenn Sie ITestFilterReceiver nicht implementieren können, können Sie IAutoRetriableTest um die erneute Ausführung manuell zu steuern. Installierte Instrumentierungstests ist eine Beispielimplementierung dieser Schnittstelle.