Unit teszt futtatásra a Visual Studio tartalmaz egy teszt futtató környezetet, de teszt Ãráshoz nem tartalmaz ilyet. Ennek oka az, hogy .NET esetén jelen pillanatban 3db teszt keretrendszer közül tudunk választani. A .NET-tel egy idÅ‘s az MSTest (https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-mstest) keretrendszer, amit nem meglepÅ‘ módon a Microsoft fejlesztett. Ez a Visual Studio Community elÅ‘tti idÅ‘szakban csak a fizetÅ‘s Visual Studio-val volt használható, Ãgy nem mindenkinek volt hozzáférése.
Éppen ezért jött létre az NUnit (https://docs.nunit.org/) projekt, ami a Java-ban Ãródott JUnit keretrendszer .NET-es megfelelÅ‘je. Mivel a JUnit keretrendszert sok Java programozó is ismerte, nem meglepÅ‘ módon hamarosan fizetÅ‘s programokat gyártó cégek is elkezdték alkalmazni tesztelésre.
A harmadik keretrendszer az xUnit.net (https://xunit.net/#documentation). Ezt eredetileg a NUnit készÃtÅ‘i Ãrták. A létrehozásának fÅ‘ oka az volt, hogy a C# fejlÅ‘désével új és jobb nyelvi elemek kerültek bevezetésre, amik egyszerűsÃtették volna a teszt Ãrást. Viszont ezt nem igen tudták beépÃteni a NUnit kódba, ezért létrehoztak egy bÅ‘vÃthetÅ‘, alapjaiban C#-ra és .NET-re tervezett egységteszt rendszert.
Mivel három keretrendszer közül is tudunk választani, kérdés, hogy melyiket válasszuk? Hosszas tanakodás után úgy döntöttem, hogy a NUnit keretrendszer kerül ismertetésre, mivel ennek a működésével vagyok a leginkább tisztában.
Unit tesztek Ãrásához létre kell hoznunk egy új projektet és be kell állÃtanunk. Ezt megtehetjük Visual Studio-ból is, de erre a célra kifejezetten a .NET CLI-t szeretem használni, mert gyorsabb tud lenni, mint Visual Studio-ban végigkattintgatni.
A unit teszt projekt lényegében egy osztálykönyvtár, ami NuGet csomag függőségnek tartalmazza a kiválasztott teszt keretrendszert és a tesztek futtatásához szükséges teszt adaptert a .NET parancssor és a Visual Studiohoz.
Új NUnit teszt projekt létrehozása
Új NUnit alapú teszt projektet létrehozhatunk a Visual Studio-ban is és a .NET CLI segÃtségével is.
Visual Studio-ban az új projekt dialógus ablakban az NUnit kifejezésre keresve megtaláljuk az "NUnit Test Project" sablont, ami létrehoz egy osztálykönyvtárat a megfelelÅ‘ NuGet függÅ‘ségek beállÃtásával.
Ugyan ezt a .NET Cli-ből az alábbi parancs kiadásával tudjuk megtenni:
dotnet new nunit
Ha manuálisan szeretnénk egy projektet NUnit teszt projektté konvertálni, akkor nincs más teendőnk, mint:
- Megbizonyosodni arról, hogy a projekt egy osztálykönyvtár (class library)
- Hozzáadni az alábbi NuGet csomagok legfrissebb változatát függőségnek:
- Microsoft.NET.Test.Sdk
- NUnit
- NUnit3TestAdapter
- NUnit.Analyzers
- coverlet.collector