Přehled testování Copilotu GitHubu pro .NET

Testování GitHub Copilotu pro .NET je funkce v chatu GitHub Copilot, který je integrovaný do sady Visual Studio. Tato funkce automatizuje vytváření, spouštění a testování kódu jazyka C# pro celé projekty, řešení, soubory, třídy nebo členy. Je navržená pro vývojáře v jazyce C#, kteří chtějí rychle spustit komplexní pokrytí testů bez ručního psaní každého testovacího případu. Testování s GitHub Copilot může generovat testy pro testovací rámce xUnit, NUnit a MSTest.

Na rozdíl od jednorázových výzev v režimu agenta Copilot nabízí testování GitHub Copilot pro .NET řízené a dlouhotrvající prostředí navržené speciálně pro generování testů. Vytváří deterministické výsledky založené na kompilátoru jazyka C# a sémantice jazyka s hlubokým povědomím o základu kódu, struktuře souborů a testovacích konvencích, aby se zajistily předvídatelné a kontextové testy vhodné pro kontext.

Požadavky

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í.

Proč používat testování GitHub Copilotu pro .NET?

Testování GitHub Copilot pro .NET nabízí komplexní prostředí v porovnání s obecnějšími funkcemi Copilotu souvisejícími s generováním testů. Funkce testování částí v GitHub Copilotu pro .NET poskytuje následující:

  • Efektivita: Automatické generování, sestavování a spouštění testů jednotek jazyka C# pro velké nebo malé projekty nebo řešení
  • Konzistence: Ujistěte se, že testy dodržují osvědčené postupy a standardy projektů. Testy se vytvářejí v samostatném testovacím projektu v řešení a generují se pomocí architektur xUnit, NUnit a MSTest. 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.
  • Integrace: Bezproblémově funguje v sadě Visual Studio s využitím funkcí AI společnosti Copilot.
  • Předvídatelnost: Copilot generuje testy deterministicky, uzemněné v kompilátoru C# a sémantice jazyka, takže kontrolní výrazy a hraniční případy jsou předvídatelné a typově bezpečné.

Klíčové funkce

  • Automatizované generování testů ve velkém měřítku: Vytvářejte testy pro jednotlivé soubory, více souborů v jednom projektu nebo v celých řešeních.
  • Interakce založená na příkazech: Použijte podporované příkazy a parametry (uvedené ve zprávě /help v rámci testování GitHub Copilot).
  • Flexibilní výzvy: Zaměřte se na konkrétní kód pomocí strukturované @Test #<target> syntaxe nebo použijte výzvy přirozeného jazyka volného formátu k popisu toho, co chcete testovat.

Co může GitHub Copilot testovat

Když tuto funkci povolíte, gitHub Copilot test interaguje s vaším řešením několika způsoby, jak vygenerovat a ověřit testy:

  • Číst: Copilot analyzuje zdrojový kód a strukturu projektu, aby porozuměl kontextu a závislostem.
  • Napsat: Vytvoří nebo aktualizuje testovací soubory v rámci vašeho řešení na základě svých návrhů.
  • Sestavení: Nástroj spouští sestavení pro kompilaci vašeho kódu a ověření, že vygenerované testy se správně integrují.
  • Provést: Spustí testy, které potvrdí, že jsou úspěšně dokončeny, a poskytnou zpětnou vazbu o pokrytí a kvalitě.

Důležité

Testování copilotu neupravuje produkční kód mimo proces generování testů. Všechny změny probíhají ve vašem místním vývojovém prostředí a máte plnou kontrolu nad kontrolou, přijetím nebo odmítnutím návrhů.

Akce prováděné agentem @Test

Agent @Test provádí během generování testů různé akce. Pochopení těchto akcí vám pomůže zjistit, co očekávat při použití nástroje.

Operace sestavení a testování

Agent k provádění následujících operací používá rozhraní API sady Visual Studio (ne nástroje příkazového řádku, například dotnet restore nebo dotnet test):

  • Obnovení a sestavení: Obnoví balíčky a sestaví projekty na základě rozsahu (od jednoho projektu až po celé řešení).
  • Spouštění testů: Primárně spouští pouze vygenerované testy. Pokud ale chcete vypočítat počáteční a výsledné pokrytí kódu (a pro režim optimalizace pokrytí), agent spustí všechny testy v daném rozsahu.
  • Process git diff: Při použití režimu git diff (#git_changes) agent analyzuje nepotvrzené změny za účelem vygenerování cílových testů.

Instalace balíčku

Agent podle potřeby nainstaluje balíčky NuGet:

  • Balíčky testovací architektury (MSTest, NUnit nebo xUnit)
  • Napodobení balíčků architektury, pokud ještě nejsou k dispozici
  • Pokrytí a rozšíření TRX pro Microsoft Test Platform (MTP), pokud nejsou přítomna

Operace LLM

Agent volá na LLM pro:

  • Analýza výzvy freeformu
  • Souhrnné zpracování
  • Generování testů

Změny projektů a souborů

Agent vytvoří testovací projekt, pokud neexistuje pro cílový kód.

Agent používá vlastní systém souborů s následujícími zárukami:

  • Obor: Agent nikdy nečte nebo zapisuje soubory mimo kořen úložiště (s výjimkou protokolů).
  • Předvolba jen pro čtení: Kdykoli je to možné, agent používá systém souborů jen pro čtení, který brání akcím zápisu.

Agent může zapisovat do následujících souborů:

  • Testování souborů projektu
  • Zdrojové soubory projektu (například přidání InternalsVisibleTo atributů)
  • Soubory řešení (nepřímo prostřednictvím rozhraní API sady Visual Studio, například při přidávání projektu)
  • Testování zdrojových souborů

Bezpečnostní aspekty

Při prvním spuštění testování GitHub Copilot pro .NET si Copilot vyžádá váš souhlas s spuštěním kódu generovaného LLM na vašem počítači. To může zahrnovat akce, jako je instalace nebo obnovení balíčků NuGet a spouštění testů. Pokud neudělíte obecný souhlas, před provedením jakékoli takové operace vás testování GitHub Copilot vyzve k explicitnímu schválení.

Upozornění

Váš souhlas uděluje Copilotu možnost tiše vyvolávat libovolné příkazy v relaci Visual Studio. Microsoft nemůže zaručit bezpečnost těchto příkazů. Tento přepínač byste měli povolit jenom v prostředí v izolovaném prostoru (sandbox) a měli byste podniknout kroky k omezení oprávnění dostupných pro toto prostředí. Prostředí v izolovaném prostoru (sandbox) by například nemělo používat účet připojený ke cloudu pro přihlášení k Windows a prostředí v izolovaném prostoru (sandbox) by se nemělo k sadě Visual Studio přihlásit pomocí privilegovaného účtu GitHubu, který má přístup pro čtení k neveřejným úložištím nebo přístup k zápisu do produkčních úložišť.

Další kroky

Viz Generování a spouštění testů pomocí testování GitHub Copilot pro .NET v sadě Visual Studio.