Dela via


Hantera flagnande tester

Azure DevOps-tjänster

Produktivitet för utvecklare är beroende av testernas förmåga att hitta verkliga problem med koden under utveckling eller uppdatering på ett snabbt och tillförlitligt sätt. Flagnande tester utgör ett hinder för att hitta verkliga problem, eftersom felen ofta inte relaterar till de ändringar som testas. Ett flagnande test är ett test som ger olika resultat, till exempel pass eller fail, även om det inte finns några ändringar i källkods- eller körningsmiljön. Flagnande tester påverkar också kvaliteten på levererad kod.

Kommentar

Den här funktionen är endast tillgänglig i Azure DevOps Services. Normalt introduceras nya funktioner i molntjänsten först och görs sedan tillgängliga lokalt i nästa huvudversion eller uppdatering av Azure DevOps Server. Mer information finns i Tidslinje för Azure DevOps-funktioner.

Målet med att få flagnande testhantering i produkten är att minska utvecklarens smärta genom flagnande tester och tillgodose hela arbetsflödet. Flådd testhantering ger följande fördelar.

  • Identifiering – Automatisk identifiering av flagnande test med omkörning eller utökningsbarhet för att ansluta din egen anpassade identifieringsmetod

  • Hantering av flakiness – När ett test har markerats som flagnande är data tillgängliga för alla pipelines för den grenen

  • Rapport om flagnande tester – Möjlighet att välja om du vill förhindra byggfel som orsakas av flagnande tester eller använda den flagnande taggen endast för felsökning

  • Lösning – Manuellt felskapande eller manuell markering och avmarkeringstest som flagnande baserat på din analys

  • Stäng loopen – Återställ det flagnande testet till följd av felmatchning/manuella indata

Flakig livscykel

Aktivera flagnande testhantering

Om du vill konfigurera flagnande testhantering väljer du Projektinställningar och väljer Testhantering i avsnittet Pipelines .

Dra knappen På/Av till .

Skärmbild av testhantering, flakig testidentifiering aktiverad, Systemidentifiering.

Standardinställningen för alla projekt är att använda flagnande tester för felsökning.

Kommentar

Att växla mellan system är i grunden störande, eftersom all historik av instabilitet som lagras i Azure DevOps raderas under övergången.

Fläckig testidentifiering

Flagnande testhantering stöder system- och anpassad identifiering.

  • Systemidentifiering: Azure DevOps har en inbyggd mekanism för att identifiera flagnande tester. Detta innebär att köra om misslyckade tester inom samma pipelinekörning. Om ett testfall initialt misslyckas men klarar omtestning (igen), markeras det som ostabilt. Denna upptäckt är nära kopplad till VSTest-uppgiften, som kör om misslyckade tester inom samma uppgiftskörning. En annan metod innebär att köra misslyckade jobb i pipelinen igen (manuellt genom att klicka på "kör misslyckade jobb igen" i alla pipelinekörningar). Om ett test godkänns i omkörningen markeras det som ostabilt.

    Kommentar

    När ett test har markerats som flagnande är data tillgängliga för alla pipelines för den grenen för att hjälpa till med felsökning i varje pipeline.

  • Anpassad identifiering: Med den här metoden kan externa system integrera sin egen logik för att identifiera flagnande tester och förlita sig på Azure DevOps för konsekvent spårning och hantering. Kommunikation med Azure DevOps aktiveras med hjälp av API:et Result Meta Data – Update . API:et kräver ett referens-ID för testfall, en flagga som anger om testet anses vara opålitligt och repository-branchen där opålitligheten observerades. Användaren bör kunna hämta referens-ID:t för testfall från API:et Hämta testresultat efter ID . När den här informationen har skickats till Azure DevOps lagrar och sprider systemet flakinessstatusen för det testfallet i efterföljande pipelinekörningar. När ett test har markerats som flagnande fortsätter Azure DevOps att behandla det som sådant tills det är manuellt omarkerat.

Skärmbild av testhantering, flakig testidentifiering aktiverad, Anpassad identifiering.

Alternativ för flagnande test

Alternativen för flagnande test anger hur flagnande tester är tillgängliga i testrapportering och lösningsfunktioner, enligt beskrivningen i följande avsnitt.

Flådd testhantering och rapportering

På sidan Testhantering under Flagnande testalternativ kan du ange alternativ för hur flagnande tester ingår i testsammanfattningsrapporten. Flagnande testdata för både godkänt och misslyckat test finns i Testresultat. Taggen Flaky hjälper dig att identifiera flagnande tester. Som standard ingår flagnande tester i testsammanfattningen. Men om du vill se till att felaktiga testfel inte misslyckas i pipelinen kan du välja att inte inkludera dem i testsammanfattningen och förhindra testfelet. Det här alternativet säkerställer att flagnande tester (både godkända och misslyckade) tas bort från passprocenten och visas i Tester som inte rapporteras, som visas i följande skärmbild.

Flådd rapportering

Kommentar

Testsammanfattningsrapporten uppdateras endast för Visual Studio-testaktiviteten och publicera testresultat. Du kan behöva lägga till ett anpassat skript för att förhindra flagnande testfel för andra scenarier.

Tester markerade som flagnande

Du kan markera eller avmarkera ett test som flagnande baserat på analys eller kontext genom att välja Flagnande (eller UnFlaky, beroende på om testet redan har markerats som flagnande.)

Markera flagnande test

När ett test har markerats som flagnande eller olaky i en pipeline görs inga ändringar i den aktuella pipelinen. Endast vid framtida körningar av testet utvärderas den ändrade flagnande inställningen. Tester som markerats som flagnande har taggen Märkt flagnande i användargränssnittet.

Bekräfta flagnande test

Hjälp och support