Granska enhetens testverktyg och miljö

Fullbordad

GitHub Copilot Chat kan användas för att föreslå enhetstester baserat på den kod du anger. Om du till exempel anger en metodsignatur och brödtext kan GitHub Copilot Chat föreslå testfall som omfattar indataparametrar och förväntade utdatavärden. När testprojektet innehåller några testfall kan du använda GitHub Copilot för att generera kodkompletteringsförslag för ytterligare testfall. Genom att använda kodradsavslutningar för att generera enhetstester minskar den repetitiva processen och hjälper till att säkerställa att koden testas noggrant.

GitHub Copilot Chat använder kodens kontext och semantik för att föreslå påståenden som säkerställer att funktionen fungerar korrekt. Det hjälper dig också att skriva testfall för gränsfall och gränsförhållanden som kan vara svåra att identifiera manuellt. GitHub Copilot Chat kan till exempel föreslå testfall för felhantering, null-värden eller oväntade indatatyper.

Viktigt!

Genererade testfall kanske inte täcker alla möjliga scenarier. Manuell testning och kodgranskningar är nödvändiga för att säkerställa kodens kvalitet.

GitHub Copilot-stöd för enhetstestning

Copilot kan hjälpa till med följande testuppgifter:

  • Konfigurera testramverk: få hjälp med att konfigurera rätt testramverk och VS Code-tillägg för ditt projekt och språk.
  • Generera testkod: skapa enhetstester, integreringstester och slutpunkt till slutpunkt-tester som täcker programkoden.
  • Hantera kantfall: generera omfattande testpaket för att täcka gränsfall och feltillstånd.
  • Åtgärda misslyckade tester: få förslag på hur du åtgärdar testfel.
  • Upprätthålla konsekvens: Anpassa Copilot för att generera tester som följer projektets kodningsmetoder.

Konfigurera ditt testramverk

För att påskynda testarbetsflödet kan Copilot hjälpa dig att konfigurera testramverket och VS Code-tilläggen för ditt projekt. Copilot föreslår lämpliga testramverk baserat på din projekttyp.

  1. Öppna vyn Chatt.

  2. /setupTests Ange kommandot i fältet för chattinmatning.

  3. Följ GitHub Copilots vägledning för att konfigurera projektet.

Skriva enhetstester med GitHub Copilot

GitHub Copilot kan hjälpa dig att skriva tester för din programkod genom att generera testkod som täcker din kodbas. Detta inkluderar enhetstester, slutpunkt till slutpunkt-tester och tester för gränsfall.

Du kan generera enhetstester med hjälp av följande GitHub Copilot-verktyg:

  • Chattvy: Använd chattvyn för att generera enhetstester för ett projekt, en klass eller en metod genom att använda Fråga-, Redigera- eller Agentläge.
  • Infogad chatt: Använd infogad chatt för att generera enhetstester för valda klasser eller metoder.
  • Smarta åtgärder: Använd åtgärden Generera tester smart för att generera enhetstester för vald kod utan att skriva en uppmaning.
  • Komplettering av kodrad: Använd kodradskompletteringar för att föreslå ytterligare enhetstester för ett befintligt testfall.

Åtgärda misslyckade tester

Copilot integreras med Test Explorer i Visual Studio Code och kan hjälpa till med att åtgärda misslyckade tester.

  1. Hovra över ett misslyckat test i Testutforskaren.

  2. Välj knappen Åtgärda testfel (miniatyrikon)

  3. Granska och tillämpa Copilots föreslagna korrigering.

Du kan också göra så här:

  1. Öppna vyn Chatt.

  2. Ange /fixTestFailure snedstreckskommandot.

  3. Följ Copilots förslag för att åtgärda testet

Tips/Råd

Agentläget övervakar testutdata när tester körs och försöker automatiskt åtgärda och köra misslyckade tester igen.

Upprätthålla konsekvens

Om din organisation har specifika testkrav kan du anpassa hur Copilot genererar tester för att säkerställa att de uppfyller dina standarder. Du kan anpassa hur Copilot genererar tester genom att tillhandahålla anpassade instruktioner. Till exempel:

  • Ange önskade testramverk
  • Definiera namngivningskonventioner för tester
  • Ange inställningar för kodstruktur
  • Begära specifika testmönster eller metoder

Stöd för Visual Studio Code för enhetstester

För att skapa och köra C#-enhetstester i Visual Studio Code behöver du följande resurser:

  • .NET 8.0 SDK eller senare.
  • C# Dev Kit-tillägget för Visual Studio Code.
  • Ett testramverkspaket har lagts till i projektet.

C# Dev Kit-stöd för enhetstester

C# Dev Kit-tillägget för Visual Studio Code innehåller en omfattande uppsättning funktioner som hjälper dig att skapa och hantera enhetstester för dina C#-projekt. Den innehåller följande funktioner:

  • Test Explorer – en trädvy för att visa alla testfall på din arbetsyta.
  • Kör/felsöka testfall – En funktion för att köra och felsöka testfall.
  • Visa testresultat – en funktion för att visa testresultaten.
  • Testkommandon – Kommandon för att köra alla tester, köra misslyckade tester med mera.
  • Testinställningar – Inställningar som är specifika för testning.
  • Testramverkspaket

C# Dev Kit stöder följande testramverk:

  • xUnit
  • NUnit
  • MSTest

Med C# Dev Kit kan du skapa ett testprojekt, lägga till ett testramverkspaket och hantera enhetstester.

Aktivera ett testramverk

Kommandopaletten i Visual Studio Code är det enklaste sättet att aktivera ett testramverk för projektet. Du kan öppna kommandopaletten på följande sätt:

  • Tryck på Ctrl + Skift + P-tangenterna (Windows/Linux) eller + (macOS).
  • Öppna menyn Visa och välj sedan Kommandopalett.
  • Öppna vyn Solution Explorer, högerklicka på lösningsmappen och välj sedan Nytt projekt. Det här alternativet öppnar kommandopaletten med kommandot .NET:New Project... redan markerat.

I följande avsnitt beskrivs hur du aktiverar ett testramverk för ditt C#-projekt med hjälp av kommandopaletten.

xUnit

Öppna kommandopaletten och välj .NET:New Project... och välj sedan xUnit Test Project och ange namn och plats för det nya projektet. Det här kommandot skapar ett nytt projekt och en ny katalog som använder xUnit som testbibliotek och konfigurerar testlöparen genom att lägga till följande <PackageReference /> element i projektfilen.

  • Microsoft.NET.Test.Sdk
  • xUnit
  • xunit.runner.visualstudio
  • coverlet.collector

Från terminalen kan du köra följande kommando:


   dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

NUnit

Öppna kommandopaletten och välj .NET:New Project... och välj sedan NUnit3 Test Project och ange namn och plats för det nya projektet. Det här kommandot skapar ett nytt projekt och en ny katalog som använder NUnit som testbibliotek och konfigurerar testlöparen genom att lägga till följande <PackageReference /> element i projektfilen.

  • Microsoft.NET.Test.Sdk
  • NUnit
  • NUnit3TestAdapter

Kör följande kommando från terminalen:

    dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

MSTest

Öppna kommandopaletten och välj .NET:Nytt projekt... välj sedan MSTest Test Project och ange namn och plats för det nya projektet. Det här kommandot skapar ett nytt projekt och en ny katalog som använder MSTest som testbibliotek och konfigurerar testlöparen genom att lägga till följande <PackageReference /> element i projektfilen.

  • Microsoft.NET.Test.Sdk
  • MSTest.TestAdapter
  • MSTest.TestFramework
  • coverlet.collector

Kör följande kommando från terminalen:

    dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

Utveckla enhetstester i Visual Studio Code med GitHub Copilot Chat

Kombinationen av Visual Studio Code och GitHub Copilot Chat ger en kraftfull miljö för att skapa och köra enhetstester för dina C#-projekt.

Enhetstestningsprocessen kan delas upp i tre steg:

  • Använd Visual Studio Code för att skapa ett testprojekt för dina enhetstester.
  • Använd GitHub Copilot Chat för att utveckla enhetstestfall för ditt C#-projekt.
  • Använd Visual Studio Code och C# Dev Kit för att köra och hantera enhetstester.

Skapa ett testprojekt

Du måste skapa ett testprojekt som ska användas för att hålla dina enhetstester. Du kan använda Visual Studio Code för att utföra följande uppgifter:

  1. Använd kommandopaletten för att skapa ett testprojekt som använder ett angivet testramverk.

  2. Använd den integrerade terminalen för att lägga till en referens till projektet som du testar.

Den här processen skapar ett nytt projekt och konfigurerar testlöparen för det valda ramverket.

Generera enhetstestfall med GitHub Copilot Chat

GitHub Copilot Chat kan användas för att hjälpa dig att skriva enhetstestfall för ditt testramverk. Copilot Chat identifierar ditt testramverk och kodningsformat och genererar matchande kodfragment. Du kan använda Copilot Chat för att utföra följande uppgifter:

  • Skriv enhetstestfall för ditt testramverk baserat på koden som är öppen i redigeraren eller kodfragmentet som du markerar i redigeraren. Copilot identifierar ditt testramverk och kodningsformat och genererar matchande kodfragment.

  • Identifiera och skriva testfall för gränsfall och gränsförhållanden som kan vara svåra att identifiera manuellt. Copilot kan till exempel föreslå testfall för felhantering, null-värden eller oväntade indatatyper.

  • Föreslå försäkran som säkerställer att funktionen fungerar korrekt, baserat på kodens kontext och semantik. Generera till exempel försäkran för att säkerställa att funktionens indataparametrar är giltiga.

Tänk på följande scenarier när du ber Copilot Chat att generera enhetstestfall:

  • Om en enda metod visas i sin helhet i redigeraren kan du be Copilot Chat att generera ett enhetstest för metoden genom att Write a unit test for the method in the #editorskriva .

  • Om det finns flera synliga metoder eller om den avsedda metoden sträcker sig längre än vad som visas i redigeraren väljer du den kod som du vill generera ett enhetstest för och frågar sedan Copilot: #selection write a unit test for this code.

Köra och hantera enhetstester i Visual Studio Code

Visual Studio Code och C# Dev Kit tillhandahåller en omfattande uppsättning funktioner som hjälper dig att köra och hantera enhetstester för dina C#-projekt. Du kan köra/felsöka testfall, visa testresultat och hantera testfall med testutforskaren.

  • Körnings-/felsökningstestfall: C# Dev Kit genererar genvägar (den gröna uppspelningsknappen) till vänster i klass- och metoddefinitionen. Om du vill köra måltestfallen väljer du den gröna uppspelningsknappen. Du kan också högerklicka på den för att se fler alternativ.

  • Testutforskaren: Testutforskaren är en trädvy för att visa alla testfall på din arbetsyta. Du kan välja knappen bägare i aktivitetsfältet till vänster i Visual Studio Code för att öppna den. Du kan också köra/felsöka dina testfall och visa deras testresultat därifrån.

  • Visa testresultat: När testfallen har körts/felsökts uppdateras tillståndet för de relaterade testobjekten i både redigeringsprogrammets dekorationer och testutforskaren. Du kan välja länkarna i stackspårningen för att navigera till källplatsen.

  • Visual Studio Code-testkommandon: Det finns testkommandon (till exempel Kör alla tester) som kan hittas genom att söka efter Test: i kommandopaletten.

  • Testinställningar för Visual Studio Code: Det finns Visual Studio Code-inställningar som är specifika för testning som kan hittas genom att söka efter Testning i inställningsredigeraren.

Sammanfattning

GitHub Copilot Chat kan användas för att föreslå enhetstester baserat på den kod du anger. Om du till exempel anger en metodsignatur och brödtext kan GitHub Copilot Chat föreslå testfall som omfattar indataparametrar och förväntade utdatavärden. När testprojektet innehåller några testfall kan du använda GitHub Copilot för att generera kodkompletteringsförslag för ytterligare testfall. Genom att använda kodradsavslutningar för att generera enhetstester minskar den repetitiva processen och hjälper till att säkerställa att koden testas noggrant.

GitHub Copilot Chat använder kodens kontext och semantik för att föreslå påståenden som säkerställer att funktionen fungerar korrekt. Det hjälper dig också att skriva testfall för gränsfall och gränsförhållanden som kan vara svåra att identifiera manuellt. GitHub Copilot Chat kan till exempel föreslå testfall för felhantering, null-värden eller oväntade indatatyper.