Generer enhetstester med GitHub Copilot Chat-visningen

Fullført

Chat-visningen i Visual Studio Code er det primære stedet for å generere enhetstester med GitHub Copilot. Fra chat-visningen kan du konfigurere et testrammeverk, generere tester for en fil eller et utvalg, og forbedre resultatene til testene samsvarer med prosjektets konvensjoner. Denne enheten fokuserer på agentmodus, som skriver genererte tester direkte inn i en testfil, kan kjøre de resulterende testene, og itererer på feil – alt fra en enkelt chatteprompt. Du kan også bruke Ask-modus på forhånd for å utforske testalternativene dine uten å gjøre noen filendringer.

Åpne chat-visningen

Åpne chat-visningen ved å bruke ett av følgende alternativer:

  • Trykk Ctrl + Alt + I (Windows/Linux) eller Cmd + Alt + I (macOS).
  • Velg GitHub Copilot-ikonet i tittelfeltet og velg deretter Toggle Chat.

Chat-visningen åpnes i den sekundære sidebaren og gir tre konfigurasjonsvalg som påvirker hver prompt du sender:

  • Agent Target: Der agenten løper. Velg Lokalt for å kjøre agenten interaktivt i editoren med full tilgang til arbeidsområdet, verktøyene og modellene dine.
  • Agent: Rollen AI-en har for økten. De innebygde lokale agentene er Ask, Plan og Agent.
  • Tillatelsesnivå: Hvor mye autonomi agenten har når den kaller verktøy og terminalkommandoer. Alternativene er Standardgodkjenninger, Omgå godkjenninger og Autopilot.

For enhetstestgenerering er det anbefalte startpunktet agenten med standardgodkjenninger. Agentmodus kan redigere filer, kjøre terminalkommandoer og kjøre tester på nytt, så den kan ta en prompt som «generer tester for denne metoden» og lage en fungerende testfil du bare trenger å gjennomgå. Default Approvals holder deg oppdatert ved å be deg bekrefte hvert verktøykall.

Eventuelt kan du bruke Ask-modus for å utforske testmuligheter først

Ask-modus svarer på spørsmål i chatten uten å endre filer eller bruke verktøy. Det gjør det til en god match når du vil planlegge en tilnærming før du lar agenten endre noe. Bruk Ask-modus når du vil:

  • Sammenlign kandidattesttilfeller for en kompleks metode før du forplikter deg til en struktur.
  • Identifiser kanttilfeller og randbetingelser som er verdt å dekke.
  • Få en anbefaling for et testrammeverk eller en påstandsstil.
  • Se et eksempel på en test i chatten uten å skrive den til disk.

For å bruke Ask-modus for analyse:

  1. Åpne chat-visningen og velg Spør fra agentvelgeren.

  2. Legg ved den relevante filen eller markeringen som kontekst (for eksempel med #selection eller ved å dra inn en fil).

  3. Still et analysespørsmål. For eksempel: What edge cases should I cover when testing the CalculateDiscount method? List the scenarios and explain why each one matters.

  4. Gå gjennom svaret, og bytt deretter agentvelgeren til Agent for å generere de faktiske testene.

Sett opp et testrammeverk med /setupTests

Hvis prosjektet ditt ennå ikke har et testrammeverk konfigurert, kan GitHub Copilot anbefale et og veilede deg gjennom konfigurasjonstrinnene. Slash-kommandoen /setupTests fungerer i alle agenter, men agentmodus kan også installere pakker og lage testprosjektet for deg.

  1. Åpne chat-visningen og velg Agent fra agentvelgeren.

  2. Skriv inn kommandoen /setupTests i chat-inndatafeltet.

  3. Bekreft verktøykallene og terminalkommandoene agenten foreslår for å installere pakker, støtte testprosjektet, og anbefal Visual Studio Code testutvidelser.

/setupTests er mest nyttig når du starter et nytt testprosjekt eller introduserer et prosjekt som ennå ikke inkluderer tester.

Generer tester med /tests

Slash-kommandoen /tests genererer enhetstester for koden som for øyeblikket er aktiv i editoren. I agentmodus skrives de genererte testene direkte inn i en passende testfil. GitHub Copilot oppdager det eksisterende testrammeverket og kodestilen og produserer tester som matcher.

For å generere tester for en hel fil:

  1. Åpne applikasjonskodefilen du vil teste.

  2. Åpne chat-visningen og bekreft at Agent er valgt.

  3. I chat-inndatafeltet, skriv inn /tests etterfulgt av eventuell ekstra veiledning. For eksempel: /tests Generate unit tests for the methods in this file. Include success, failure, and edge cases.

  4. Bekreft verktøykallene agenten bruker for å lese kontekst, skrive testene, og (eventuelt) kjøre dem.

  5. Gå gjennom endringene agenten har gjort.

    Agenten legger til tester i en eksisterende testfil når en er tilgjengelig, eller oppretter en ny testfil på riktig sted. Diffen vises i editoren slik at du kan verifisere hver endring.

  6. Velg Behold eller Ando for å godta eller forkaste endringene.

For å generere tester for en spesifikk metode eller kodeblokk:

  1. Åpne applikasjonskodefilen.

  2. Velg metoden eller blokken du vil teste.

  3. I chatvisningen, skriv inn /tests og deretter veiledning som refererer til valget. For eksempel: /tests Generate unit tests for the selected method. Validate both success and failure, and include edge cases.

  4. Gå gjennom og behold eller forkast de resulterende endringene.

Generer tester med en naturlig språkprompt

Du trenger ikke bruke en slash-kommando. Agenten genererer tester fra naturlige språklige prompts når du inkluderer nok kontekst. Eksempler:

  • "Generer xUnit-tester for metodene i denne filen og legg dem til Calculator.Tests-prosjektet."
  • "Skriv enhetstester for metoden CalculateDiscount , inkludert kanttilfeller for negative verdier og null. Kjør testene etter at du har skrevet dem."
  • "Lag integrasjonstester for dataaksesslaget i denne modulen."

Siden agenten kan kjøre kommandoer, kan du inkludere verifiseringssteg i samme prompt. Å be agenten kjøre testene etter at du har skrevet dem, lar den oppdage og rette åpenbare feil før den gir arbeidet tilbake til deg.

Legg til kontekst til promptene dine

Kvaliteten på de genererte testene avhenger av konteksten du gir. Bruk ett eller flere av følgende alternativer for å knytte kontekst til en Chat-visningsprompt:

  • Legg til kontekst-knappen: Åpne et hurtigvalg for å legge til filer, mapper, symboler eller det nåværende redigeringsvalget.
  • Dra og slipp: Dra filer fra Utforsker-visningen, eller dra en editor-fane, inn i Chat-visningen for å legge ved innholdet.
  • # Nevner: Skriv # etterfulgt av et fil-, mappe- eller symbolnavn for å legge det til som kontekst. Bruk #selection for å legge ved det nåværende redigeringsvalget, eller #codebase for å la GitHub Copilot søke i arbeidsområdet etter relevant kontekst.
  • Eksterne filer: Åpne markdown-filer (for eksempel bidragsyterretningslinjer eller testkonvensjoner) i editoren og legg dem ved via Add Context. Agenten bruker innholdet til å forme de genererte testene.

For eksempel, hvis én metode er synlig i editoren, kan du spørre: Write a unit test for the method in #editor. Hvis flere metoder er synlige eller målmetoden strekker seg utover det synlige området, velg koden først og spør: #selection write unit tests for the selected code.

Gå gjennom og forbedre agentens endringer

Selv om agenten skriver tester direkte inn i testprosjektet ditt, beholder du kontrollen:

  • Gå gjennom forskjellen: Hver fil agenten endrer åpnes i editoren med de foreslåtte endringene markert. Gå gjennom differensialet før du aksepterer det.
  • Behold eller angre: Bruk Behold for å akseptere endringene, eller angre for å reversere dem. Du kan også tilbakestille individuelle biter fra editoren.
  • Bygg og kjør: Etter å ha beholdt endringene, bygg testprosjektet og kjør testene fra Test Explorer eller terminalen for å bekrefte at alt kompileres og består.
  • Iterer: Bruk oppfølgingsprompter i samme chat-økt for å forbedre spesifikke tester, legge til flere saker eller gi nytt navn på metoder.

Personlig testgenerering med egendefinerte instruksjoner

Hvis organisasjonen din har spesifikke testkrav, kan du tilpasse hvordan GitHub Copilot genererer tester slik at resultatet samsvarer med standardene dine. Tilpassede instruksjoner lar deg:

  • Spesifiser foretrukne testrammeverk (for eksempel xUnit i stedet for NUnit).
  • Definer navnekonvensjoner for testklasser og metoder.
  • Sett kodestrukturpreferanser som Arrange-Act-Assert-mønsteret.
  • Be om spesifikke testmønstre, som parameteriserte tester for grenseverdier.

Lagre tilpassede instruksjoner i en *.instructions.md fil i arbeidsområdet ditt. Bruk applyTo metadata-feltet for å bruke instruksjonene kun på testfiler. For eksempel begrenser en applyTo: tests/** verdi instruksjonene til filer i katalogen tests/ . Å dele filen i versionskontroll gir hver utvikler på teamet samme testkontekst.

Important

Genererte testtilfeller dekker kanskje ikke alle scenarioer. Manuell gjennomgang og kodegjennomgang er fortsatt nødvendig for å sikre kvaliteten på testene dine.