Zum Hauptinhalt springen
Produkt und Engineering

Fünfzig Fehlschläge sind meistens vier Probleme

Fünfzig fehlschlagende Tests in einem Lauf sind eine Zahl, die Ihnen nichts sagt außer dass jemand fünfzig Stacktraces lesen muss. Die meisten teilen eine Ursache: ein Fixture, eine geänderte Form, ein Timeout in einer geteilten Abhängigkeit.

Nach dem Fehlschlag statt nach dem Testnamen zu gruppieren, ist das, was fünfzig auf vier reduziert. Zwei Tests mit unabhängigen Namen, die an derselben Assertion im selben Frame fehlschlagen, sind ein Problem.

Neu und wiederkehrend müssen ebenfalls getrennt werden. Ein Fehlschlag, der in neun der letzten zehn Läufe erscheint, ist eine bekannte Bedingung und gehört auf eine andere Liste als der, der in diesem Commit zum ersten Mal erschien.

Der Bericht, der gelesen wird, sagt vier Probleme, eines davon neu, mit dem Commit-Bereich. Der Bericht, der ignoriert wird, sagt fünfzig.

So läuft der ActionFlow auf der Canvas

Testergebnisse kommen über einen Webhook-Trigger von Ihrem Runner, oder ein HTTP Request-Knoten liest sie nach einem Start Scheduled-Lauf.

Ein Extract-Data-Knoten reduziert jeden Fehlschlag auf seine Signatur: die Assertion, die oberen Frames des Traces und die Testdatei. Er verwirft den Rest, weil der Rest die Ausgabe unlesbar macht.

Ein Uniq-Knoten fällt identische Signaturen zusammen. Ein Generate Object-Knoten gruppiert den Rest nach dem Fehlschlag, den sie beschreiben, mit Mitgliedertests unter jedem gelistet.

Ein PostgreSQL- oder MongoDB-Knoten speichert die Historie der Signaturen, das erlaubt überhaupt, neue von wiederkehrenden zu unterscheiden.

Ein If-Knoten teilt die Gruppen gegen diese Historie. Ein Math-Knoten zählt, in wie vielen der letzten Läufe jede wiederkehrende Gruppe erschien.

Ein Sort-Knoten setzt neue Fehlschläge zuerst, dann wiederkehrende in der Reihenfolge, wie lange sie schon fehlschlagen, das ist die Reihenfolge, die eine Ingenieurin oder ein Ingenieur sowieso wählen würde.

Ein Generate Text-Knoten schreibt die Zusammenfassung, einschließlich Commit-Bereich und Gruppenzahlen. Ein Slack-Knoten postet sie in den Engineering-Kanal.

Hier gilt kein Build als durchgelaufen oder fehlgeschlagen, und kein Test wird deaktiviert. Der Flow berichtet.

Knoten, die dieser ActionFlow verwendet

  • Webhook (Triggers): Ergebnisse vom Runner, sobald der Lauf endet.
  • Extract Data (Data): reduziert einen Fehlschlag auf Assertion, Frames und Datei.
  • Uniq (Control): fällt identische Signaturen vor dem Gruppieren zusammen.
  • Generate Object (AI Core): gruppiert nach dem beschriebenen Fehlschlag, Mitglieder gelistet.
  • PostgreSQL (Data): Signaturhistorie, damit neu und wiederkehrend unterscheidbar sind.
  • If (Control) with Math (Util): teilt gegen die Historie und zählt Wiederkehr.
  • Sort (Data): neu zuerst, dann wiederkehrend nach Alter.
  • Slack (Communication): postet die Zusammenfassung. Die Build-Entscheidung bleibt bei der Pipeline.

Häufige Fragen

KI-Workflows bauen

Legen Sie ein kostenloses Konto an, öffnen Sie eine Vorlage oder eine leere Fläche und führen Sie Ihren ersten ActionFlow aus.

Newsletter

Produktupdates erhalten

Neue Nodes, Agents und Produktnotizen. Wir senden E-Mails nur, wenn sich das Öffnen lohnt.

Sie können das Abonnement jederzeit beenden.