Granska Visual Studio Code stöd för enhetstestning

Slutförd

Innan du kan generera enhetstester med GitHub Copilot behöver projektet ett fungerande testramverk och ett sätt att köra tester i Visual Studio Code. Visual Studio Code tillhandahåller .NET SDK och C# Dev Kit-tillägget den miljö som är värd för dina enhetstester, medan GitHub Copilot fokuserar på att generera och förfina testkoden. Att förstå den underliggande miljön gör GitHub Copilot arbetsflöde mycket enklare att följa.

Den här lektionen undersöker de Visual Studio Code funktioner och C#-verktyg som stöder enhetstestning. Senare enheter fokuserar på hur GitHub Copilot genererar och underhåller testkoden som körs i den här miljön.

Visual Studio Code stöd för enhetstester

Om du vill 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

Tillägget C# Dev Kit innehåller de testfunktioner som du använder i den här modulen:

  • Test Explorer: En trädvy som visar alla testfall på din arbetsyta. Du kan öppna Test Explorer genom att välja bägareikonen i aktivitetsfältet.
  • Kör/felsöka testfall: Gröna uppspelningsknappar visas i redigeraren bredvid varje testklass och metod. Högerklicka på en uppspelningsknapp om du vill se fler alternativ.
  • Visa testresultat: När ett test har körts återspeglas resultatet i redigeringsprogrammets dekorationer och i Test Explorer. Om du väljer en länk i en stackspårning navigerar du till källplatsen.
  • Testkommandon: Kommandon som Test: Run All Tests är tillgängliga i kommandopaletten. Sök efter Test: för att se hela listan.
  • Testinställningar: Inställningar som styr testidentifiering och körningsbeteende är tillgängliga i inställningsredigeraren. Sök efter Testing för att se de tillgängliga alternativen.

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

  • xUnit
  • NUnit
  • MSTest

Skapa ett testprojekt med hjälp av kommandopaletten

Kommandopaletten i Visual Studio Code är det enklaste sättet att skapa ett testprojekt som använder ett ramverk som stöds. Du kan öppna kommandopaletten på följande sätt:

  • Tryck på tangenterna Ctrl + Shift + P (Windows/c4> Linux) eller Cmd + Shift + P (macOS).
  • Öppna menyn Visa och välj sedan Kommandopalett.
  • Öppna vyn Prieskumník riešení, högerklicka på lösningsmappen och välj sedan Nyt projekt. Det här alternativet öppnar kommandopaletten med kommandot .NET: Nytt projekt... redan markerat.

Följande avsnitt visar hur du skapar ett testprojekt för varje ramverk som stöds.

xUnit

Öppna kommandopaletten och välj .NET: Ny Project... väljer du xUnit Test Project och anger sedan ett namn och en plats för den nya project. Det här kommandot skapar ett projekt som använder xUnit som testbibliotek och konfigurerar testkören genom att lägga till följande <PackageReference /> element i projektfilen:

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

Från den integrerade terminalen kan du lägga till en referens från testprojektet till projektet som testas:

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: Ny Project... väljer du NUnit3 Test Project och anger sedan ett namn och en plats för den nya project. Det här kommandot skapar ett projekt som använder NUnit som testbibliotek och lägger till följande <PackageReference /> element i projektfilen:

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

Lägg till en referens till projektet som testas 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: Ny Project... väljer du MSTest Test Project och anger sedan ett namn och en plats för den nya project. Det här kommandot lägger till följande <PackageReference /> element i projektfilen:

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

Lägg till en referens till projektet som testas från terminalen:

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

Köra och hantera enhetstester i Visual Studio Code

När ett testprojekt finns ger Visual Studio Code och C# Dev Kit flera sätt att köra och hantera tester:

  • Kör/felsök från redigeraren: Välj den gröna uppspelningsknappen bredvid en klass eller metod för att köra målet. Högerklicka på uppspelningsknappen för att se alternativ som Kör test och Felsöka test.
  • Testutforskaren: Kör eller felsöka enskilda tester, grupper eller hela sviten från trädvyn. Testresultat, inklusive ikoner och varaktigheter för pass/fail, visas bredvid varje objekt.
  • Visa testresultat: Redigeringsdekorationer och Testutforskaren återspeglar båda det aktuella tillståndet för varje test efter en körning. Välj länkar i stackspår för att hoppa till raden där felet uppstår.
  • Testkommandon: Använd kommandon som Test: Run All Tests, Test: Debug Failed Testsoch Test: Show Output från kommandopaletten.
  • Testinställningar: Sök efter Testing i inställningsredigeraren för att konfigurera funktioner som automatisk körning vid sparning eller formatering av testresultat.

Arbetsflödet för enhetstestning med GitHub Copilot

När du kombinerar Visual Studio Code med GitHub Copilot delas enhetstestningsprocessen upp i tre steg:

  1. Konfigurera miljön: Använd Visual Studio Code, .NET SDK och C# Dev Kit för att skapa ett testprojekt och referera till projektet som testas. Du har slutfört det här steget i den här lektionen.
  2. Generera testkod: Använd GitHub Copilot i chattvyn för att generera enhetstester för programkoden. Nästa avsnitt behandlar det här stadiet.
  3. Kör och underhålla tester: Använd Test Explorer och C# Dev Kit för att köra tester och använd sedan GitHub Copilot för att utöka täckningen och åtgärda misslyckade tester.

De återstående enheterna fokuserar på de GitHub Copilot verktyg som stöder steg 2 och 3.