Generer enhedstests med GitHub Copilot Chat-visningen
Chat-visningen i Visual Studio Code er det primære sted at generere enhedstests med GitHub Copilot. Fra chatvisningen kan du konfigurere et testframework, generere tests til en fil eller et valg og forfine resultaterne, indtil testene matcher dit projekts konventioner. Denne enhed fokuserer på Agent-tilstand, som skriver genererede tests direkte ind i en testfil, kan køre de resulterende tests og itererer på fejl – alt sammen fra en enkelt chatprompt. Du kan også bruge Ask-tilstand på forhånd for at udforske dine testmuligheder uden at lave filændringer.
Åbn chatvisningen
Åbn chatvisningen ved hjælp af en af følgende muligheder:
- Tryk Ctrl + Alt + I (Windows/Linux) eller Cmd + Alt + I (macOS).
- Vælg GitHub Copilot-ikonet i titelbjælken og vælg derefter Toggle Chat.
Chat-visningen åbner i den sekundære sidebjælke og giver tre konfigurationsvalg, der påvirker hver prompt, du sender:
- Agent Target: Hvor agenten løber hen. Vælg Lokalt for at køre agenten interaktivt i editoren med fuld adgang til dit arbejdsområde, værktøjer og modeller.
- Agent: Den rolle, AI'en har for sessionen. De indbyggede lokale agenter er Ask, Plan og Agent.
- Tilladelsesniveau: Hvor meget autonomi agenten har, når den kalder værktøjer og terminalkommandoer. Mulighederne er Standardgodkendelser, Omgå-godkendelser og Autopilot.
For generering af enhedstests anbefales det anbefalede udgangspunkt Agenten med standardgodkendelser. Agent-tilstand kan redigere filer, køre terminalkommandoer og køre tests igen, så den kan tage en prompt som "generer tests for denne metode" og producere en fungerende testfil, du kun behøver at gennemgå. Default Approvals holder dig opdateret ved at bede dig bekræfte hver værktøjskald.
Valgfrit kan du bruge Ask-tilstand til først at udforske testmuligheder
Ask-tilstand besvarer spørgsmål i chatten uden at ændre filer eller bruge værktøjer. Det gør det til et godt match, når du vil planlægge en tilgang, før du lader agenten ændre noget. Brug Ask-tilstand, når du vil:
- Sammenlign kandidattestcases for en kompleks metode, før du forpligter dig til en struktur.
- Identificer kanttilfælde og randbetingelser, der er værd at dække.
- Få en anbefaling til et testsystem eller en påstandsstil.
- Se et eksempel på en test i chatten uden at skrive den til disk.
For at bruge Ask-tilstand til analyse:
Åbn chatvisningen og vælg Spørg fra agentvælgeren.
Vedhæft den relevante fil eller markering som kontekst (for eksempel med
#selectioneller ved at trække en fil ind).Stil et analysespørgsmål. For eksempel:
What edge cases should I cover when testing the CalculateDiscount method? List the scenarios and explain why each one matters.Gennemgå svaret, og skift derefter agentvælgeren til Agent for at generere de faktiske tests.
Opsæt et testframework med /setupTests
Hvis dit projekt endnu ikke har et testframework konfigureret, kan GitHub Copilot anbefale et og guide dig gennem konfigurationstrinene. Kommandoen /setupTests slash virker i enhver agent, men Agent mode kan også installere pakker og oprette testprojektet for dig.
Åbn chatvisningen og vælg Agent fra agentvælgeren.
Indtast kommandoen
/setupTestsi chat-inputfeltet.Bekræft de værktøjskald og terminalkommandoer, som agenten foreslår til at installere pakker, støtte testprojektet og anbefal Visual Studio Code testudvidelser.
/setupTests er mest nyttig, når du starter et nyt testprojekt eller onboardinger et projekt, der endnu ikke inkluderer tests.
Generer tests med /tests
Skråstreg-kommandoen /tests genererer enhedstests for den kode, der aktuelt er aktiv i editoren. I agent-tilstand skrives de genererede tests direkte ind i en passende testfil. GitHub Copilot opdager det eksisterende testframework og kodningsstil og producerer tests, der matcher.
For at generere tests for en hel fil:
Åbn applikationskodefilen, du vil teste.
Åbn chatvisningen og bekræft, at Agent er valgt.
I chat-inputfeltet indtastes
/testsdu efterfulgt af eventuel yderligere vejledning. For eksempel:/tests Generate unit tests for the methods in this file. Include success, failure, and edge cases.Bekræft de værktøjskald, som agenten bruger til at læse kontekst, skrive testene og (valgfrit) køre dem.
Gennemgå de ændringer, agenten har foretaget.
Agenten tilføjer tests til en eksisterende testfil, når en sådan er tilgængelig, eller opretter en ny testfil på det relevante sted. Diffen vises i editoren, så du kan verificere hver ændring.
Vælg Behold eller Fortryd for at acceptere eller kassere ændringerne.
For at generere tests for en specifik metode eller kodeblok:
Åbn applikationskodefilen.
Vælg den metode eller blok, du vil teste.
I chatvisningen indtastes
/testsder efterfulgt af vejledning, der refererer til valget. For eksempel:/tests Generate unit tests for the selected method. Validate both success and failure, and include edge cases.Gennemgå og gem eller smid de resulterende ændringer ud.
Generer tests med en naturlig sprogprompt
Du behøver ikke bruge en skråstræg-kommando. Agenten genererer tests ud fra naturlige sprogprompts, når du inkluderer nok kontekst. Eksempler:
- "Generer xUnit-tests for metoderne i denne fil og tilføj dem til Calculator.Tests-projektet."
- "Skriv enhedstests for metoden
CalculateDiscount, inklusive randtilfælde for negative værdier og nul. Kør testene efter at have skrevet dem." - "Opret integrationstests for dataadgangslaget i dette modul."
Fordi agenten kan køre kommandoer, kan du inkludere verifikationstrin i samme prompt. Hvis du beder agenten om at køre testene efter at have skrevet dem, kan den opdage og rette åbenlyse fejl, før arbejdet gives tilbage til dig.
Tilføj kontekst til dine prompts
Kvaliteten af de genererede tests afhænger af den kontekst, du giver. Brug en eller flere af følgende muligheder til at knytte kontekst til en chatvisningsprompt:
- Tilføj kontekst-knap : Åbn et Quick Pick for at tilføje filer, mapper, symboler eller den aktuelle editorvalg.
- Træk og slip: Træk filer fra Explorer-visningen, eller træk en editor-fane, over i chat-visningen for at vedhæfte indholdet.
-
#nævner: Skriv#efterfulgt af et fil-, mappe- eller symbolnavn for at tilføje det som kontekst. Brug#selectiontil at vedhæfte det aktuelle redigeringsvalg, eller#codebasetil at lade GitHub Copilot søge i arbejdsområdet efter relevant kontekst. - Eksterne filer: Åbn markdown-filer (for eksempel bidragyderretningslinjer eller testkonventioner) i editoren og vedhæft dem via Add Context. Agenten bruger indholdet til at forme de genererede tests.
For eksempel, hvis en enkelt metode er synlig i editoren, kan du spørge: Write a unit test for the method in #editor. Hvis flere metoder er synlige, eller målmetoden rækker ud over det synlige område, vælg først koden og spørg: #selection write unit tests for the selected code.
Gennemgå og forfine agentens ændringer
Selvom agenten skriver tests direkte ind i dit testprojekt, bevarer du kontrollen:
- Gennemgå forskellen: Hver fil, agenten ændrer, åbner i editoren med de foreslåede redigeringer markeret. Gå igennem forskel, før du accepterer den.
- Behold eller Fortryd: Brug Behold til at acceptere ændringerne, eller Fortryd for at fortryde dem. Du kan også gendanne enkelte stykker fra editoren.
- Byg og kør: Efter at have beholdt ændringerne, byg testprojektet og kør testene fra Test Explorer eller terminalen for at bekræfte, at alt kompilerer og består.
- Iterer: Brug opfølgende prompts i samme chatsession til at forfine specifikke tests, tilføje flere sager eller omdøbe metoder.
Tilpas testgenerering med brugerdefinerede instruktioner
Hvis din organisation har specifikke testkrav, kan du tilpasse, hvordan GitHub Copilot genererer tests, så outputtet matcher dine standarder. Specialanvisninger giver dig mulighed for:
- Angiv foretrukne testframeworks (for eksempel xUnit i stedet for NUnit).
- Definér navngivningskonventioner for testklasser og metoder.
- Indstil kodestrukturpræferencer såsom Arrange-Act-Assert-mønsteret.
- Anmod om specifikke testmønstre, såsom parameteriserede tests for grænseværdier.
Gem brugerdefinerede instruktioner i en *.instructions.md fil i dit arbejdsområde. Brug applyTo metadata-feltet til kun at anvende instruktionerne på testfiler. For eksempel omfanger en applyTo: tests/** værdi instruktionerne til filer i mappen tests/ . At dele filen i versionskontrol giver alle udviklere på teamet den samme testkontekst.
Vigtigt!
Genererede testcases dækker måske ikke alle scenarier. Manuel gennemgang og kodegennemgang er stadig nødvendige for at sikre kvaliteten af dine tests.