Undersøg værktøjerne og miljøet til enhedstest

Fuldført

GitHub Copilot Chat kan bruges til at foreslå enhedstests baseret på den kode, du angiver. For eksempel, hvis du specificerer en metodesignatur og en body, kan GitHub Copilot Chat foreslå testcases, der dækker inputparametre og forventede outputværdier. Når dit testprojekt indeholder nogle testcases, kan du bruge GitHub Copilot til at generere kodefuldførelsesforslag til yderligere testcases. Når du bruger fuldførelser af kodelinje til at generere enhedstests, reduceres den gentagne proces, og det hjælper med at sikre, at din kode testes grundigt.

GitHub Copilot Chat bruger din kodes kontekst og semantik til at foreslå påstande, der sikrer, at funktionen fungerer korrekt. Det hjælper dig også med at skrive testcases for kantcases og grænsebetingelser, der kan være svære at identificere manuelt. For eksempel kan GitHub Copilot Chat foreslå testcases til fejlhåndtering, nullværdier eller uventede inputtyper.

Vigtig

Genererede testcases dækker muligvis ikke alle mulige scenarier. Manuelle test og kodegennemgange er nødvendige for at sikre kvaliteten af din kode.

GitHub Copilot understøttelse af enhedstest

GitHub Copilot kan hjælpe med følgende testopgaver:

  • Konfigurer testrammer: Få hjælp til at konfigurere den rette teststruktur og VS Code-udvidelser til dit projekt og sprog.
  • Generér testkode: Opret enhedstests, integrationstests og komplette test, der dækker din programkode.
  • Håndter kantcases: Generér omfattende testpakker for at dække kantcases og fejltilstande.
  • Ret fejltest: Modtag forslag til løsning af testfejl.
  • Bevar konsistens: personaliser GitHub Copilot for at generere tests, der følger dit projekts kodningspraksis.

Konfigurer din teststruktur

For at accelerere din testarbejdsgang kan GitHub Copilot hjælpe med at opsætte testframeworket og VS Code-udvidelser til dit projekt. GitHub Copilot foreslår passende testrammer baseret på din projekttype.

  1. Åbn chatvisningen.

  2. Indtast kommandoen /setupTests i chat-inputfeltet.

  3. Følg GitHub Copilot's vejledning til at konfigurere dit projekt.

Skriv enhedstests med GitHub Copilot

GitHub Copilot kan hjælpe dig med at skrive tests til din applikationskode ved at generere testkode, der dækker din kodebase. Dette omfatter enhedstests, end-to-end-test og test for edge cases.

Du kan generere enhedstests ved hjælp af følgende GitHub Copilot værktøjer:

  • Chatvisning: Brug chatvisningen til at generere enhedstests for et projekt, en klasse eller en metode ved hjælp af Ask, Plan eller Agent.
  • Inline Chat: Brug Inline Chat til at generere enhedstests for udvalgte klasser eller metoder.
  • Smarte handlinger: Brug Smart-handlingen Generer Tests til at generere enhedstests for udvalgt kode uden at skrive en prompt.
  • Kodelinjefuldførelser: Brug kodelinjefuldførelser til at foreslå additionsenhedstests for en eksisterende testsag.

Ret fejl i test

GitHub Copilot integreres med Test Explorer i Visual Studio Code og kan hjælpe med at rette fejlende tests.

  1. Peg på en test, der mislykkedes, i Teststifinder.

  2. Vælg knappen Fix Test Failure (glitrende ikon)

  3. Gennemgå og anvend GitHub Copilot foreslåede løsning.

Du kan eventuelt bruge:

  1. Åbn chatvisningen.

  2. Ind kommer slash-kommandoen /fixTestFailure .

  3. Følg GitHub Copilot's forslag for at rette testen

Tips

Når GitHub Copilot bruges i agenttilstand, overvåger agenten testoutputtet under tests og forsøger automatisk at rette og gentage fejlende tests.

Bevar konsistens

Hvis din organisation har specifikke testkrav, kan du tilpasse, hvordan GitHub Copilot genererer tests, så de opfylder dine standarder. Du kan personliggøre, hvordan GitHub Copilot genererer tests ved at give brugerdefinerede instruktioner. Eksempler:

  • Angiv foretrukne testrammer
  • Definer navngivningskonventioner for test
  • Angiv indstillinger for kodestruktur
  • Anmod om specifikke testmønstre eller -metoder

Visual Studio Code-understøttelse af enhedstests

For at oprette og køre C#-enhedstests i Visual Studio Code har du brug for følgende ressourcer:

  • .NET 8.0 SDK eller nyere.
  • C# Dev Kit-udvidelsen til Visual Studio Code.
  • En teststrukturpakke, der er føjet til dit projekt.

Understøttelse af C# Dev Kit til enhedstests

C# Dev Kit-udvidelsen til Visual Studio Code tilbyder et rigt sæt funktioner, der hjælper dig med at skabe og administrere enhedstests til dine C#-projekter. Den indeholder følgende funktioner:

  • Test Explorer – En trævisning, der viser alle testcases i dit arbejdsområde.
  • Run/Debug test cases – En funktion til kørsel og fejlfinding af testcases.
  • Få vist testresultater – en funktion til at få vist testresultaterne.
  • Testkommandoer – Kommandoer til at køre alle test, køre mislykkede test og meget mere.
  • Testindstillinger – Indstillinger, der er specifikke for test.
  • Test framework-pakke

C# Dev Kit understøtter følgende testrammer:

  • xUnit
  • NUnit
  • MSTest

Med C# Dev Kit kan du oprette et testprojekt, tilføje en teststrukturpakke og administrere enhedstest.

Aktivering af en teststruktur

Command Palette i Visual Studio Code giver den nemmeste måde at aktivere et testframework til dit projekt. Du kan åbne kommandopaletten på følgende måder:

  • Tryk på Ctrl + Shift + P tasterne (Windows/Linux) eller Cmd + Shift + P (macOS).
  • Åbn Visningsmenuen , og vælg derefter Command Palette.
  • Åbn Solution Explorer-visningen, højreklik på løsningsmappen, og vælg derefter Nyt Projekt. Denne mulighed åbner Command Palette med .NET:New Project... kommando allerede valgt.

I følgende afsnit beskrives det, hvordan du aktiverer en teststruktur for dit C#-projekt ved hjælp af kommandopaletten.

xUnit

Åbn Command Palette og vælg .NET:Nyt Projekt... vælg derefter xUnit Test Project og oplys navn og placering for det nye projekt. Denne kommando opretter et nyt projekt og en mappe, der bruger xUnit som testbibliotek og konfigurerer testrunneren ved at tilføje følgende <PackageReference /> elementer til projektfilen.

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

Fra Terminal kan du køre følgende kommando:


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

NUnit

Åbn Command Palette og vælg .NET:Nyt Projekt... vælg derefter NUnit3 Test Project og oplys navn og placering for det nye projekt. Denne kommando opretter et nyt projekt og en mappe, der bruger NUnit som testbibliotek og konfigurerer testrunneren ved at tilføje følgende <PackageReference /> elementer til projektfilen.

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

Kør følgende kommando fra Terminal:

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

MSTest

Åbn Command Palette og vælg .NET:Nyt Projekt... vælg derefter MSTest Test Project og oplys navn og placering for det nye projekt. Denne kommando opretter et nyt projekt og en mappe, der bruger MSTest som testbibliotek og konfigurerer testrunneren ved at tilføje følgende <PackageReference /> elementer til projektfilen.

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

Kør følgende kommando fra Terminal:

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

Udvikl enhedstests i Visual Studio Code ved hjælp af GitHub Copilot Chat

Kombinationen af Visual Studio Code og GitHub Copilot Chat giver et kraftfuldt miljø til at oprette og køre enhedstests til dine C#-projekter.

Enhedstestprocessen kan opdeles i tre faser:

  • Brug Visual Studio Code til at oprette et testprojekt til dine enhedstests.
  • Brug GitHub Copilot Chat til at udvikle enhedstestcases til dit C#-projekt.
  • Brug Visual Studio Code og C# Dev Kit til at køre og administrere dine enhedstests.

Opret et testprojekt

Du skal oprette et testprojekt, der skal bruges til at holde dine enhedstest. Du kan bruge Visual Studio Code til at udføre følgende opgaver:

  1. Brug kommandopaletten til at oprette et testprojekt, der bruger en angivet teststruktur.

  2. Brug den integrerede terminal til at føje en reference til det projekt, du tester.

Denne proces opretter et nyt projekt og konfigurerer testløberen for den valgte struktur.

Generer enhedstestcases ved hjælp af GitHub Copilot Chat

GitHub Copilot Chat kan bruges til at hjælpe dig med at skrive enhedstestcases til dit testframework. GitHub Copilot Chat genkender dit testframework og din kodningsstil og genererer matchende kodeuddrag. Du kan bruge GitHub Copilot Chat til at udføre følgende opgaver:

  • Skriv enhedstestcases til teststrukturen baseret på den kode, der er åben i editoren, eller det kodestykke, du fremhæver i editoren. GitHub Copilot identificerer dit testframework og din kodningsstil og genererer matchende kodeuddrag.

  • Identificer og skriv testcases for kantcases og grænsebetingelser, der kan være svære at identificere manuelt. For eksempel kan GitHub Copilot foreslå testcases til fejlhåndtering, nullværdier eller uventede inputtyper.

  • Foreslå antagelser, der sikrer, at funktionen fungerer korrekt, baseret på kodens kontekst og semantik. Opret f.eks. antagelser for at sikre, at parametrene for funktionsinput er gyldige.

Overvej følgende scenarier, når du beder GitHub Copilot Chat om at generere enhedstestcases:

  • Hvis en enkelt metode er synlig i sin helhed i editoren, kan du bede GitHub Copilot Chat om at generere en enhedstest for metoden ved at skrive Write a unit test for the method in the #editor.

  • Hvis der er flere synlige metoder, eller den tilsigtede metode rækker ud over det, der er synligt i editoren, så vælg den kode, du vil generere en enhedstest for, og spørg GitHub Copilot: #selection write a unit test for the selected code.

Kør og administrer enhedstests i Visual Studio Code

Visual Studio Code og C# Dev Kit tilbyder et rigt sæt funktioner, der hjælper dig med at køre og administrere enhedstests for dine C#-projekter. Du kan køre/foretage fejlfinding af testcases, få vist testresultater og administrere testcases ved hjælp af Teststifinder.

  • Testcases af typen Run/Debug: C# Dev Kit genererer genveje (den grønne afspilningsknap) i venstre side af klasse- og metodedefinitionen. Hvis du vil køre destinationstestcases, skal du vælge den grønne afspilningsknap. Du kan også højreklikke på den for at se flere indstillinger.

  • Teststifinder: Teststifinder er en trævisning, der viser alle testcases i dit arbejdsområde. Du kan vælge bægerknappen på venstre side af Aktivitetslinjen i Visual Studio Code for at åbne den. Du kan også køre/foretage fejlfinding af dine testcases og få vist deres testresultater derfra.

  • Vis testresultater: Når testcasene er kørt/fejlrettet, opdateres tilstanden for de relaterede testelementer i både editordekoration og Test Explorer. Du kan vælge kæderne i staksporingen for at navigere til kildeplaceringen.

  • Visual Studio Code testkommandoer: Der findes testkommandoer (for eksempel Run All Tests), som kan findes ved at søge på Test: i Command Palette.

  • Visual Studio Code testindstillinger: Der findes Visual Studio Code-indstillinger, der er specifikke for testning, som kan findes ved at søge efter Testing i Settings editor.

Resumé

GitHub Copilot Chat kan bruges til at foreslå enhedstests baseret på den kode, du angiver. For eksempel, hvis du specificerer en metodesignatur og en body, kan GitHub Copilot Chat foreslå testcases, der dækker inputparametre og forventede outputværdier. Når dit testprojekt indeholder nogle testcases, kan du bruge GitHub Copilot til at generere kodefuldførelsesforslag til yderligere testcases. Når du bruger fuldførelser af kodelinje til at generere enhedstests, reduceres den gentagne proces, og det hjælper med at sikre, at din kode testes grundigt.

GitHub Copilot Chat bruger din kodes kontekst og semantik til at foreslå påstande, der sikrer, at funktionen fungerer korrekt. Det hjælper dig også med at skrive testcases for kantcases og grænsebetingelser, der kan være svære at identificere manuelt. For eksempel kan GitHub Copilot Chat foreslå testcases til fejlhåndtering, nullværdier eller uventede inputtyper.