A GitHub Copilot .NET-alapú tesztelésének áttekintése

A .NET-hez készült GitHub Copilot-tesztelés a GitHub Copilot Chat egyik képessége, amely a Visual Studióba van integrálva. Ez a funkció automatizálja a C#-kód létrehozását, futtatását és tesztelését teljes projektekhez, megoldásokhoz, fájlokhoz, osztályokhoz vagy tagokhoz. Olyan C#-fejlesztőknek készült, akik komplex tesztelési lefedettséget szeretnének gyorsan megvalósítani anélkül, hogy minden tesztesetet manuálisan kellene megírniuk. A GitHub Copilot-tesztelés képes teszteket létrehozni xUnit, NUnit és MSTest tesztelési keretrendszerekhez.

A Copilot-ügynök módban az egyszeri kérésekkel ellentétben a .NET-hez készült GitHub Copilot-tesztelés egy irányított, hosszú ideig futó élményt kínál, amelyet kifejezetten a tesztelési generációhoz terveztek. Determinisztikus eredményeket hoz létre a C#-fordítóban és a nyelvi szemantikában, a kódbázis, a fájlstruktúra és a tesztelési konvenciók mély tudatában, hogy kiszámítható, kontextusnak megfelelő teszteket biztosítson.

Előfeltételek

Megjegyzés:

A .NET-hez készült GitHub Copilot-teszteléshez fizetős GitHub Copilot-előfizetés szükséges (egyéni, üzleti vagy vállalati). Az ingyenes Copilot-előfizetések nem támogatottak.

Miért érdemes a GitHub Copilot .NET-alapú tesztelését használni?

A .NET-hez készült GitHub Copilot-tesztelés átfogó élményt nyújt a tesztek generálásához kapcsolódó általánosabb Copilot-képességekhez képest. A .NET-hez készült GitHub Copilot egységtesztelési képessége a következőket biztosítja:

  • Hatékonyság: C#-egységtesztek automatikus létrehozása, összeállítása és futtatása nagy vagy kis projektekhez vagy megoldásokhoz.
  • Következetesség: Győződjön meg arról, hogy a tesztek megfelelnek az ajánlott eljárásoknak és a projektszabványoknak. A tesztek egy külön tesztprojektben jönnek létre a megoldásban, és az xUnit, az NUnit és az MSTest keretrendszerek használatával jönnek létre. Ha a megoldás már rendelkezik egységtesztekkel az NUnitban vagy az xUnitban, a .NET-hez készült GitHub Copilot-tesztelés új teszteket hoz létre ugyanabban az egységtesztelési keretrendszerben. Ha a megoldásban nincsenek egységtesztek, a rendszer új teszteket hoz létre az MSTest használatával.
  • Integráció: Zökkenőmentesen működik a Visual Studióban, kihasználva a Copilot AI-képességeit.
  • Kiszámíthatóság: A Copilot determinisztikusan, a C#-fordítóban és a nyelvi szemantikában alapuló teszteket hoz létre, így az állítások és a peremes esetek kiszámíthatók és típusbiztosak.

Legfontosabb funkciók

  • Automatizált tesztlétrehozás nagy méretekben: Teszteket hozhat létre egyetlen fájlhoz, több fájlhoz egyetlen projektben vagy teljes megoldásokban.
  • Parancsalapú interakció: Használjon támogatott parancsokat és paramétereket (az üzenet a /help GitHub Copilot tesztelésében szerepel).
  • Rugalmas kérések: Konkrét kód megcélzása a strukturált @Test #<target> szintaxissal, vagy szabadkérelmű természetes nyelvi utasításokat használva írja le a tesztelni kívánt kódot.

Mit tehet a GitHub Copilot tesztelése?

Ha engedélyezi ezt a képességet, a GitHub Copilot tesztelése többféleképpen is együttműködik a megoldással a tesztek létrehozásához és ellenőrzéséhez:

  • Olvas: A Copilot elemzi a forráskódot és a projektstruktúrát a környezet és a függőségek megértéséhez.
  • Ír: A javaslatok alapján tesztfájlokat hoz létre vagy frissít a megoldáson belül.
  • Épít: Az eszköz elindítja a buildeket a kód fordításához és annak ellenőrzéséhez, hogy a létrehozott tesztek megfelelően integrálhatók-e.
  • Futtat: Teszteket futtat, hogy megerősítse, átmennek-e, és visszajelzést adjon a lefedettségről és a minőségről.

Fontos

A copilot-tesztelés nem módosítja az éles kódot a tesztgenerálási folyamaton kívül. Minden módosítás a helyi fejlesztési környezetben történik, és ön továbbra is teljes mértékben ellenőrzi a javaslatok áttekintését, elfogadását vagy elvetését.

Az ügynök által @Test végrehajtott műveletek

Az @Test ügynök különböző műveleteket hajt végre a tesztgenerálás során. Ezeknek a műveleteknek a megértésével megtudhatja, mire számíthat az eszköz használatakor.

Felépítési és tesztelési műveletek

Az ügynök Visual Studio API-kat használ (nem parancssori eszközöket vagy dotnet restorehasonlókatdotnet test) a következő műveletek végrehajtásához:

  • Visszaállítás és buildelés: Csomagok visszaállítása és projektek létrehozása hatókör alapján (egyetlen projekttől a teljes megoldásig).
  • Tesztek futtatása: Elsősorban csak a létrehozott teszteket futtatja. A kezdeti és az eredményként kapott kódlefedettség kiszámításához (és a lefedettségoptimalizálási módhoz) azonban az ügynök az adott hatókörön belül futtatja az összes tesztet.
  • Process git diff: A diff mód (#git_changes) használatakor az ügynök elemzi a nem véglegesített módosításokat a célzott tesztek létrehozásához.

Csomag telepítése

Az ügynök szükség szerint telepíti a NuGet-csomagokat:

  • Keretrendszercsomagok tesztelése (MSTest, NUnit vagy xUnit)
  • Keretcsomagok kicsomagolása, ha még nincs jelen
  • Lefedettség és TRX-bővítmények a Microsoft Test Platformhoz (MTP) ha nincs jelen

LLM-műveletek

Az ügynök a következő LLM-hívásokat kezdeményezi:

  • Szabadkéseletes gyorselemzés
  • Összegzés feldolgozása
  • Tesztgenerálás

Projekt- és fájlmódosítások

Az ügynök létrehoz egy tesztprojektet, ha nem létezik a célkódhoz.

Az ügynök egyéni fájlrendszert használ a következő garanciákkal:

  • Hatókör: Az ügynök soha nem olvas vagy ír fájlokat az adattár gyökérkönyvtárán kívül (a naplók kivételével).
  • Írásvédett beállítás: Ha lehetséges, az ügynök írásvédett fájlrendszert használ, amely megakadályozza az írási műveleteket.

Az ügynök a következő fájlokba írhat:

  • Projektfájlok tesztelése
  • Forrásprojektfájlok (például attribútumok hozzáadása InternalsVisibleTo )
  • Megoldásfájlok (közvetetten Visual Studio API-kon keresztül, például projekt hozzáadásakor)
  • Forrásfájlok tesztelése

Biztonsági szempontok

Amikor először futtatja a GitHub Copilot .NET-alapú tesztelését, a Copilot az Ön hozzájárulását kéri az LLM által létrehozott kód végrehajtásához a számítógépen. Ilyenek lehetnek például a NuGet-csomagok telepítése vagy visszaállítása, valamint a tesztek futtatása. Ha nem ad általános hozzájárulást, a GitHub Copilot tesztelése explicit jóváhagyást kér, mielőtt bármilyen ilyen műveletet végrehajt.

Caution

A hozzájárulás lehetővé teszi a Copilot számára, hogy a Visual Studio-munkameneten belül csendesen meghívjon tetszőleges parancsokat. A Microsoft nem tudja garantálni ezeknek a parancsoknak a biztonságát. Ezt a kapcsolót csak tesztkörnyezetben kell engedélyeznie, és lépéseket kell tennie az adott környezet számára elérhető jogosultságok korlátozásához. A zárt környezetnek például nem szabad felhőalapú fiókot használnia a Windowsba való bejelentkezéshez, és a zárt környezet nem szabad, hogy egy privilégiumokkal rendelkező GitHub-fiókkal legyen bejelentkezve a Visual Studio-ba, amely olvasási hozzáférést biztosít nem nyilvános adattárakhoz vagy írási hozzáférést biztosít éles adattárakhoz.

Következő lépések

Lásd: Tesztek létrehozása és futtatása a GitHub Copilot .NET-alapú tesztelésének használatával a Visual Studióban.