Automatischer Testwiederholungsversuch

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 Hauptzweck der automatischen Wiederholung besteht darin, zu vermeiden, dass alle Tests noch einmal ausgeführt werden. Stattdessen werden nur die fehlgeschlagenen Tests noch einmal ausgeführt, was zu einer erheblichen Zeitersparnis bei der Ausführung führt.

Tradefed unterstützt auch mehrfache Tests, um festzustellen, Iterationen instabile. In diesem Fall sind alle Tests und der Test schlägt fehl, wenn eine der Iterationen fehlschlägt.

Automatische Wiederholung aktivieren

Die automatische Wiederholung wird über das RetryDecision-Objekt gesteuert. Es bietet zwei Optionen zum Aktivieren der Funktion: max-testcase-run-count und retry-strategy.

max-testcase-run-count bestimmt die Anzahl der Wiederholungen oder Iterationen, die versucht werden. Es wird eine Obergrenze festgelegt, um endlose Wiederholungen zu vermeiden. retry-strategy entscheidet, wie ein Wiederholungsversuch gestartet wird. finden Sie in den folgenden Abschnitten .

Automatische Wiederholungsversuche deaktivieren

Verwenden Sie die folgende Option:

--retry-strategy NO_RETRY

Fehlgeschlagene Versuche wiederholen

Sie haben folgende Möglichkeiten, fehlgeschlagene Tests noch einmal auszuführen:

--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. Dazu müssen sie die ISupportGranularResults-Schnittstelle erweitern, die die Unterstützung der detaillierten (nicht zusammengefassten) Ergebnisse angibt.

Implementierungsdetails

Wenn Sie die automatische Wiederholung aktivieren möchten, um Fehler auf Testfallebene noch einmal auszuführen, implementieren Sie ITestFilterReceiver.

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.