Egységtesztek létrehozása és futtatása a .NET-hez készült GitHub Copilot-teszteléssel

Növelheti a kódminőség iránti bizalmat, és javíthatja a tesztelési lefedettséget a .NET-hez készült GitHub Copilot-tesztekkel végzett egységtesztek létrehozásával és futtatásával.

Bár a Copilot képes egységteszteket létrehozni, a Visual Studióban a GitHub Copilot .NET-alapú tesztelésével további tesztelési képességeket kaphat, beleértve a következőket:

  • Az egységtesztek egy külön projektben jönnek létre a megoldáson belül.
  • 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.
  • GitHub Copilot a tesztgenerálást követően hozza létre az egységteszteket. Ha vannak hibák, a .NET-hez készült GitHub Copilot egységtesztelési képessége megpróbálja azonosítani és kijavítani a hibákat, majd újrafuttatja a teszteket.
  • A GitHub Copilot-teszt a Test Explorerrel futtatja a teszteket.

A .NET-hez készült GitHub Copilot-tesztelés csak az MSTest, az NUnit és az xUnit keretrendszer használatával hoz létre teszteket C#-projektekhez. 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.

Előfeltételek

Az első lépésekhez a következőkre van szüksége:

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.

Az egységtesztelés bemutatása: Egységteszt alapjai.

A GitHub Copilot tesztelésének megkezdésének módjai

A .NET-hez készült GitHub Copilot-tesztelés többféleképpen is elindítható:

  • A Copilot Chat ablakában írja be @Test, majd egy célt vagy kérdést.
  • A szerkesztőben kattintson a jobb gombbal a helyi menü megnyitásához, és válassza a Copilot Actions>Generate Tests lehetőséget.
  • Válassza ki egy új Copilot-csevegési szálban a Copilot Chat icebreaker javaslatainak Egységtesztek írása lehetőségét.

Megjegyzés:

A helyi menü és az icebreaker opciói automatikusan az @Test ügynökhöz irányítanak, ha az IDE-ben a fókusz a C# kódra irányul. Nem C#-projektek esetén ezek a beállítások inkább egy általános Copilot-kérést használnak.

Parancssori szintaxis

A GitHub Copilot-tesztelés két kérési módszert támogat: strukturált szintaxist és szabadkézi utasításokat.

Strukturált szintaxis

@Test #<target> A szintaxis használatával teszteket hozhat létre adott kódelemekhez:

@Test #<target>

Ahol #<target> lehet:

  • Tag, osztály, fájl, projekt vagy megoldás
  • Egy git diff az aktuális módosítások teszteléséhez (#git_changes)
  • Több azonos típusú bemenet (például több osztály vagy több fájl)

Megjegyzés:

A vegyes beviteli típusok nem támogatottak. Nem kombinálhat például egy fájlt és egy projektet ugyanabban a bemenetben.

Példák:

  • @Test #BankAccount — Tesztek létrehozása a BankAccount osztályhoz
  • @Test #git_changes – Tesztek létrehozása az aktuális nem véglegesített módosításokhoz
  • @Test #MyProject — Tesztek létrehozása az összes kódhoz a MyProjectben

Szabadkéűs kérések

Természetes nyelv használatával írja le, hogy mit szeretne tesztelni:

@Test <your prompt>

Példák:

Haladéktalan Description
@Test class Foo Tesztek létrehozása egy adott osztályhoz
@Test generate tests for the core logic in my #solution A kódbázis meghatározott területeinek megcélzása
@Test write unit tests for my current changes Tesztek létrehozása a nem véglegesített git-módosításokhoz
@Test fix my failing tests Kérje meg a Copilototot, hogy javítsa ki a sikertelen teszteket
@Test class Bar, targeting 80% code coverage Lefedettségi cél megadása
@Test use xUnit with FluentAssertions Tesztelési keretrendszerek és konvenciók megadása

Jótanács

A tesztelési keretrendszerekkel, a mock könyvtárakkal, az érvényesítési stílusokkal és a tesztelési konvenciókkal kapcsolatos konkrét utasításokat a szabad szöveges utasításokban adhat meg.

További parancsok

A GitHub Copilot-teszt parancsokat biztosít a súgóhoz és a beállítások kezeléséhez:

Command Description
@Test /help A súgó üzenetének megjelenítése elérhető parancsokkal és szintaxissal
@Test /clear-preferences Tárolt felhasználói beállítások törlése, beleértve a hozzájárulási beállításokat is

Tesztek létrehozása és futtatása

  1. Nyisson meg egy meglévő C#-projektet, amely új teszteket igényel.

    Ha nem rendelkezik meglévő projekttel, létrehozhat egy új projektet, majd a Bank mintaalkalmazás kódjával kísérletezhet az egységteszteléssel. Másolja a kezdő mintakódot a .NET egységtesztek létrehozása és futtatása dokumentumból Program.cs.-ba/ből.

  2. Készítse el a projektet.

    A folyamat egyszerűsítése érdekében győződjön meg arról, hogy a projekt hibák nélkül épül fel.

  3. A Visual Studióban válassza a GitHub Copilot-csevegés megtekintése lehetőséget>.

  4. A GitHub Copilot tesztelésének elindításához használja a parancssori módszerek bármelyikét.

    A Bank mintaalkalmazáshoz használja az alábbi lehetőségek egyikét:

    • Strukturált: @Test #BankAccount
    • Szabadkézi: @Test generate comprehensive tests for the BankAccount class

    Megjegyzés:

    A parancs megadásakor a Kérdés módban vagy az @Test Ügynök módban is lehet. Az eredmények nem különböznek.

    A Teszt parancs a következőképpen jelenik meg a csevegésben, ami azt jelzi, hogy a parancs felismerve van.

    Képernyőkép a tesztek létrehozásához tartozó parancsról.

  5. A Csevegés ablakban válassza a Küldés lehetőséget.

    A .NET-hez készült GitHub Copilot-tesztelés iteratív folyamatot kezdeményez a kód elemzéséhez, új projekt létrehozásához az egységtesztekhez, tesztek generálása, a tesztek létrehozása és futtatása.

    A tesztlétrehozás egy hosszú ideig futó folyamat. A cél hatókörétől függően (fájl, projekt, megoldás stb.) eltarthat egy ideig.

    Képernyőkép a Copilot tesztgenerálásának elindításáról.

    Egységtesztek létrehozásakor a tesztek egy külön tesztprojektben jelennek meg a megoldásban.

    Képernyőkép a létrehozott mintatesztről.

    A Test Explorer megjeleníti az eredményeket. Ha a GitHub Copilot-tesztelés nem nyitja meg automatikusan a Test Explorert, válassza a Test>Test Explorer lehetőséget.

    Képernyőkép a Test Explorer kimenetéről.

    Ezen a ponton manuálisan használhatja a Tesztböngészőt a tesztek futtatásához, vagy cseveghet a Copilottal a teszteredményekről. A Sikertelen tesztek hibakereséséhez a Copilotot is használhatja. További információ: Hibakeresési egységtesztek.