Freigeben über


Verwalten von unzuverlässigen Tests

Azure DevOps Services

Die Produktivität der Entwickler*innen hängt von der Fähigkeit der Tests ab, echte Probleme mit dem zu entwickelnden oder zu aktualisierenden Code rechtzeitig und zuverlässig zu finden. Unzuverlässige Tests stellen ein Hindernis bei der Suche nach echten Problemen dar, da die Fehler oft nicht mit den getesteten Änderungen zusammenhängen. Ein unzuverlässiger Test ist ein Test, der unterschiedliche Ergebnisse liefert, z. B. bestanden oder nicht bestanden, auch wenn keine Änderungen am Quellcode oder an der Ausführungsumgebung vorgenommen wurden. Unzuverlässige Tests wirken sich auch auf die Qualität des gelieferten Codes aus.

Hinweis

Dieses Feature ist nur auf Azure DevOps Services verfügbar. In der Regel werden zuerst neue Features im Clouddienst eingeführt und dann lokal in der nächsten Hauptversion oder dem nächsten Update von Azure DevOps Server verfügbar gemacht. Weitere Informationen finden Sie in der Azure DevOps-Featurezeitachse.

Das Ziel der Integration der Verwaltung von unzuverlässigen Tests in das Produkt ist es, die durch unzuverlässige Tests verursachten Probleme für Entwickler*innen zu verringern und den gesamten Workflow zu unterstützen. Die Verwaltung von unzuverlässigen Tests bietet die folgenden Vorteile.

  • Erkennung: Automatische Erkennung von unzuverlässigen Tests mit Wiederholungs- oder Erweiterungsmöglichkeit zum Einfügen Ihrer benutzerdefinierten Erkennungsmethode

  • Verwaltung der Unzuverlässigkeit: Sobald ein Test als unzuverlässig gekennzeichnet ist, sind die Daten für alle Pipelines für diesen Branch verfügbar.

  • Bericht über unzuverlässige Tests: Sie können auswählen, ob Sie Buildfehler, die durch unzuverlässige Tests verursacht werden, verhindern möchten, oder ob Sie das Tag für unzuverlässige Tests nur zur Problembehandlung verwenden möchten.

  • Lösung: Manuelle Fehlererstellung oder manuelles Kennzeichnen und Aufheben der Kennzeichnung von Tests als unzuverlässig auf der Grundlage Ihrer Analyse

  • Abschließen des Workflows: Setzen Sie den unzuverlässigen Test als Ergebnis der Fehlerbehebung bzw. der manuellen Eingabe zurück.

Unzuverlässiger Lebenszyklus

Aktivieren der Verwaltung unzuverlässiger Tests

Wählen Sie Projekteinstellungen und dann Testverwaltung im Abschnitt Pipelines aus, um die Verwaltung von unzuverlässigen Tests zu konfigurieren.

Legen Sie den Ein/Aus-Schieberegler auf Ein fest.

Screenshot der Testverwaltung. Die Erkennung unzuverlässiger Tests ist aktiviert, und die Option „Systemerkennung“ ist ausgewählt.

Die Standardeinstellung für alle Projekte ist die Verwendung unzuverlässiger Tests für die Problembehandlung.

Hinweis

Der Wechsel zwischen Systemen ist inhärent störend, da der gesamte in Azure DevOps gespeicherte Flakinessverlauf während des Übergangs gelöscht wird.

Erkennung unzuverlässiger Tests

Die Verwaltung unzuverlässiger Tests unterstützt die Systemerkennung und die benutzerdefinierte Erkennung.

  • Systemerkennung: Azure DevOps verfügt über einen integrierten Mechanismus zum Erkennen flackeriger Tests. Dies umfasst die erneute Ausführung fehlgeschlagener Tests innerhalb derselben Pipelineausführung. Wenn ein Testfall anfangs fehlschlägt, aber bei einem erneuten Durchlauf besteht, wird er als instabil markiert. Diese Erkennung ist eng mit der VSTest-Aufgabe verbunden, die fehlgeschlagene Tests innerhalb derselben Aufgabenausführung erneut durchführt. Eine andere Methode umfasst das erneute Ausführen fehlgeschlagener Aufträge in der Pipeline (manuell durch Klicken auf "Fehlgeschlagene Aufträge erneut ausführen" in einer Pipelineausführung). Wenn ein Test die Wiederholung bestanden hat, wird er als unzuverlässig markiert.

    Hinweis

    Sobald ein Test als unzuverlässig gekennzeichnet ist, stehen die Daten für alle Pipelines für diesen Branch zur Verfügung, um die Problembehandlung in jeder Pipeline zu unterstützen.

  • Benutzerdefinierte Erkennung: Mit diesem Ansatz können externe Systeme ihre eigene Logik zum Erkennen von flackernden Tests integrieren und auf Azure DevOps für eine konsistente Nachverfolgung und Verwaltung zurückgreifen. Die Kommunikation mit Azure DevOps ist mithilfe der Ergebnismetadaten – Update-API aktiviert. Die API erfordert eine Testfallreferenz-ID, ein Flag, das angibt, ob der Test als flaky gilt, und der Repository-Branch, in dem die Flakiness beobachtet wurde. Der Benutzer sollte in der Lage sein, die Testfallreferenz-ID aus der API " Testergebnis nach ID abrufen " abzurufen. Sobald diese Informationen an Azure DevOps gesendet wurden, speichert und verteilt das System den Flakinessstatus für diesen Testfall in nachfolgenden Pipelineläufen. Nachdem ein Test als instabil gekennzeichnet wurde, behandelt Azure DevOps ihn weiterhin als solchen, bis er manuell wieder freigegeben wird.

Screenshot der Testverwaltung. Die Erkennung unzuverlässiger Tests ist aktiviert, und die Option „Benutzerdefinierte Erkennung“ ist ausgewählt.

Optionen für unzuverlässige Tests

Die Optionen für unzuverlässige Tests legen fest, wie unzuverlässige Tests in Testberichten verfügbar sind und welche Lösungsmöglichkeiten es gibt, wie in den folgenden Abschnitten beschrieben.

Unzuverlässige Testverwaltung und Berichterstellung

Auf der Seite „Testverwaltung“ unter Optionen für unzuverlässige Tests können Sie festlegen, wie unzuverlässige Tests in den Testzusammenfassungsbericht aufgenommen werden sollen. Unzuverlässige Testdaten sowohl für den bestandenen als auch den fehlgeschlagenen Test sind in Testergebnisse verfügbar. Anhand des Tags Unzuverlässig können Sie unzuverlässige Tests erkennen. Standardmäßig sind unzuverlässige Tests in der Testzusammenfassung enthalten. Wenn Sie jedoch sicherstellen möchten, dass unzuverlässige Testfehler Ihre Pipeline nicht beeinträchtigen, können Sie diese nicht in Ihre Testzusammenfassung aufnehmen und den Testfehler unterdrücken. Diese Option stellt sicher, dass unzuverlässige Tests (sowohl bestandene als auch fehlgeschlagene) aus dem Prozentsatz der bestandenen Tests entfernt und in Nicht im Bericht enthaltene Tests angezeigt werden, wie im folgenden Screenshot zu sehen ist.

Unzuverlässige Berichte

Hinweis

Der Testzusammenfassungsbericht wird nur für die Aufgaben Visual Studio Test und Publish Test Results aktualisiert. Möglicherweise müssen Sie ein benutzerdefiniertes Skript hinzufügen, um unzuverlässige Tests für andere Szenarios zu unterdrücken.

Als unzuverlässig gekennzeichnete Tests

Sie können einen Test auf der Grundlage der Analyse oder des Kontexts als unzuverlässig kennzeichnen oder die Kennzeichnung aufheben, indem Sie Unzuverlässig (oder UnFlaky) auswählen, je nachdem, ob der Test bereits als unzuverlässig gekennzeichnet ist.

Kennzeichnen eines Tests als unzuverlässig

Wenn ein Test in einer Pipeline als unzuverlässig oder nicht unzuverlässig gekennzeichnet ist, werden in der aktuellen Pipeline keine Änderungen vorgenommen. Erst bei zukünftigen Ausführungen dieses Tests wird die geänderte unzuverlässige Einstellung ausgewertet. Tests, die als unzuverlässig gekennzeichnet sind, haben das Tag Als unzuverlässig markiert auf der Benutzeroberfläche.

Bestätigen der Kennzeichnung eines Tests als unzuverlässig

Hilfe und Support