Generování a spouštění testů jednotek pomocí testování GitHub Copilotu pro .NET

Zvyšte důvěru v kvalitu kódu a vylepšete pokrytí testování vytvořením a spuštěním testů jednotek pomocí testování GitHub Copilot pro .NET.

I když Copilot může generovat testy jednotek, získáte další možnosti testování pomocí testování GitHub Copilot pro .NET v sadě Visual Studio, včetně následujících:

  • Jednotkové testy jsou generovány v samostatném projektě v rámci řešení.
  • Copilot generuje testy deterministicky, zakotvené v kompilátoru C# a sémantice jazyka, takže aserce a hraniční případy jsou předvídatelné a bezpečné z hlediska typů.
  • GitHub Copilot vytváří jednotkové testy po generování testovacích případů. Pokud dojde k chybám, funkce testování částí v GitHub Copilotu pro .NET se pokusí identifikovat a opravit chyby a pak testy znovu spustí.
  • Testování GitHub Copilotu spouští testy pomocí Test Exploreru.

GitHub Copilot testing for .NET generuje testy pro projekty jazyka C# pouze pomocí rozhraní MSTest, NUnit a xUnit. Pokud už řešení obsahuje testy jednotek v NUnit nebo xUnit, vygeneruje testování GitHub Copilotu pro .NET nové testy ve stejné architektuře testování jednotek. Pokud řešení neobsahuje žádné testy jednotek, vygenerují se nové testy pomocí msTestu.

Požadavky

Abyste mohli začít, potřebujete:

Poznámka:

Testování GitHub Copilotu pro .NET vyžaduje placené předplatné GitHub Copilot (individuální, obchodní nebo podnikové). Bezplatná předplatná Copilot se nepodporují.

Úvod do testování jednotek najdete v tématu Základy testování částí.

Způsoby spuštění testování GitHub Copilotu

Testování GitHub Copilotu pro .NET můžete spustit několika způsoby:

  • V chatu Copilot zadejte @Test a poté do okna chatu zadejte cíl nebo výzvu.
  • V editoru kliknutím pravým tlačítkem otevřete místní nabídku a vyberte Copilot Actions>Generate Tests.
  • V novém vlákně chatu Copilot vyberte Napsat jednotkové testy z návrhů na prolomení ledů v Copilot Chat.

Poznámka:

Když je zaměření integrovaného vývojového prostředí (IDE) v kódu jazyka C#, místní nabídka a možnosti icebreakeru se automaticky směrují k agentovi @Test. U projektů, které nejsou v jazyce C#, používají tyto možnosti místo toho obecný příkazový řádek Copilot.

Syntaxe výzvy

Testování GitHub Copilotu podporuje dvě metody výzvy: strukturovanou syntaxi a výzvy volného formátu.

Strukturovaná syntaxe

@Test #<target> Pomocí syntaxe můžete vygenerovat testy pro konkrétní prvky kódu:

@Test #<target>

Kde #<target> může být:

  • Člen, třída, soubor, projekt nebo řešení
  • Spusťte příkaz git diff pro kontrolu aktuálních změn (#git_changes)
  • Více vstupů stejného typu (například několik tříd nebo několik souborů)

Poznámka:

Smíšené vstupní typy nejsou podporovány. Ve stejné výzvě například nelze zkombinovat soubor a projekt.

Příklady:

  • @Test #BankAccount — Generování testů pro třídu BankAccount
  • @Test #git_changes — Generování testů pro aktuální nepotvrzené změny
  • @Test #MyProject — Generování testů pro veškerý kód v projektu MyProject

Výzvy volného tvaru

Použití přirozeného jazyka k popisu toho, co chcete testovat:

@Test <your prompt>

Příklady:

Podnět Description
@Test class Foo Generování testů pro konkrétní třídu
@Test generate tests for the core logic in my #solution Cílení na konkrétní oblasti základu kódu
@Test write unit tests for my current changes Generovat testy pro nekomitované změny v gitu
@Test fix my failing tests Požádejte Copilot, aby opravil neúspěšné testy.
@Test class Bar, targeting 80% code coverage Určení cíle pokrytí
@Test use xUnit with FluentAssertions Určení testovacích architektur a konvencí

Návod

Konkrétní pokyny k testování architektur, napodobování knihoven, stylů kontrolních výrazů a konvencí testování můžete zadat v dotazech freeformu.

Další příkazy

Testování GitHub Copilotu poskytuje příkazy pro nápovědu a správu předvoleb:

Command Description
@Test /help Zobrazení zprávy nápovědy s dostupnými příkazy a syntaxí
@Test /clear-preferences Vymazání uložených uživatelských předvoleb, včetně nastavení souhlasu

Generování a spouštění testů

  1. Otevřete existující projekt C#, který potřebuje nové testy.

    Pokud nemáte existující projekt, můžete vytvořit nový projekt a pak pomocí ukázkového kódu aplikace Bank experimentovat s testováním jednotek. Zkopírujte počáteční vzorový kód z příkazu Vytvořit a spustit testy jednotek pro .NET do Program.cs.

  2. Zkompilujte projekt.

    Ujistěte se, že se projekt sestaví bez chyb, aby se proces zjednodušil.

  3. Ve Visual Studiu vyberte Zobrazit > GitHub Copilot Chat.

  4. Použijte některou z metod spuštění testování GitHub Copilot.

    Pro ukázkovou aplikaci bank použijte jednu z následujících možností:

    • Strukturované: @Test #BankAccount
    • Volný tvar: @Test generate comprehensive tests for the BankAccount class

    Poznámka:

    Při zadávání příkazu můžete být buď v režimu ask, nebo v režimu agenta @Test . Výsledky se neliší.

    Příkaz Test se zobrazí v chatu následujícím způsobem, který indikuje, že je příkaz rozpoznán.

    Snímek obrazovky s příkazem pro generování testů

  5. V okně Chat vyberte Odeslat.

    GitHub Copilot testing for .NET iniciuje iterativní proces analýzy kódu, vytvoření nového projektu pro testy jednotek, generování testů, sestavení a spuštění testů.

    Generování testů je dlouhotrvající proces. V závislosti na rozsahu cíle (soubor, projekt, řešení atd.) může chvíli trvat.

    Snímek obrazovky Copilot při začátku generování testu.

    Při generování jednotkových testů se testy zobrazí v samostatném testovacím projektu v řešení.

    Snímek obrazovky vygenerovaného ukázkového testu

    Průzkumník testů zobrazuje výsledky. Pokud Průzkumník testů není automaticky otevřen během testování pomocí GitHub Copilotu, vyberte Test>Průzkumník testů.

    Snímek obrazovky s výstupem Průzkumníka testů

    V tomto okamžiku můžete pomocí Průzkumníka testů pokračovat ve spouštění testů nebo chatovat s Copilotem o výsledcích testu. Pomocí Copilotu můžete také ladit neúspěšné testy. Další informace naleznete v tématu Ladění testů jednotek.