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 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.