Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A C++ egységteszteket a Test Explorer ablakával írhatja és futtathatja. Ugyanúgy működik, mint más nyelvek esetében. További információ az Test Explorerhasználatáról: Egységtesztek futtatása a Test Explorerhasználatával.
Jegyzet
Egyes funkciók, például az élőegység-tesztelés, a kódolt felhasználói felületi tesztek és az IntelliTest nem támogatottak a C++-ban.
A Visual Studio ezeket a C++ tesztkörnyezeteket tartalmazza további letöltések nélkül:
- Microsoft egységtesztelő keretrendszer C++-hoz
- Google Test
- Boost.Test
- CTest
Használhatja a telepített keretrendszereket, vagy írhat saját tesztadaptert a Visual Studióban használni kívánt keretrendszerhez. A tesztadapter integrálja az egységteszteket a Test Explorer ablakba. Számos nem Microsoft-adapter érhető el a Visual Studio Marketplace. További információ: Egységteszt-keretrendszerek telepítése.
Visual Studio 2017 és újabb verziók (Professional és Enterprise)
A C++ egységtesztelési projektek támogatják CodeLens.
Visual Studio 2017 és újabb verziók (minden kiadás)
A Google Tesztadapter alapértelmezett összetevőként szerepel a C++-szal végzett asztali fejlesztési munkaterhelésben. Rendelkezik egy projektsablonnal, amelyet hozzáadhat egy megoldáshoz. Kattintson a jobb gombbal a megoldáscsomópontra Megoldáskezelő, és válassza >Új projekt hozzáadása parancsot a helyi menüben a projektsablon hozzáadásához. Emellett az Eszközök>Beállításokhasználatával konfigurálható beállításokat is kínál. További információért lásd: Hogyan használjuk a Google Testet a Visual Studio.
Boost.Test a Asztali fejlesztés alapértelmezett összetevőjeként, C++ számítási feladattal. Integrálva van Test Explorer, de jelenleg nincs projektsablonja. Manuálisan kell konfigurálnia. További információért lásd: Hogyan használjuk a Boost.Testet a Visual Studio-ban.
CTest támogatása a C++ CMake-eszközök összetevő része, amely a C++ számítási feladattal rendelkező asztali fejlesztés része. További információkért lásd a következőt: Hogyan használjuk a CTestet a(z) Visual Studio-ban.
A Visual Studio korábbi verziói
Letöltheti a Google Test adaptert és a Boost.Test Adapter bővítményeket a Visual Studio Marketplace-en. Találja meg őket a Boost.Test tesztadapterén és a Google Test tesztadapterén.
Borravaló
A Copilot /tests perjel parancsot is használhatja egységtesztek létrehozására a kódból. Beírhat például /tests using Boost framework a Boost.Test tesztek létrehozásához. További információért lásd: A perjelparancsok használata a Copilot csevegőben.
Alapszintű tesztelési munkafolyamat
Az alábbi szakaszok a C++ egységtesztelés első lépéseit mutatják be. Az alapkonfiguráció a Microsoft és a Google Test keretrendszer esetében is hasonló. A Boost.Test használatához manuálisan kell létrehoznia egy tesztprojektet.
Tesztprojekt létrehozása a Visual Studio 2022-ben
Egységtesztek definiálása és futtatása egy vagy több tesztprojektben. A tesztprojektek létrehoznak egy külön alkalmazást, amely meghívja a kódot a végrehajtható fájlban, és jelentést készít a viselkedéséről. Hozzon létre tesztprojekteket a tesztelni kívánt kóddal megegyező megoldásban.
Új tesztprojekt hozzáadása meglévő megoldáshoz:
- Kattintson a jobb gombbal a Megoldás csomópontra Megoldáskezelő.
- A helyi menüben válassza a(z) >Új projekt hozzáadásalehetőséget.
- Állítsa be a Nyelvet C++ -re, majd írja be a tesztet a keresőmezőbe. Az alábbi képernyőképen a C++ Asztali fejlesztés és a UWP-fejlesztési számítási feladat telepítésekor elérhető tesztprojektek láthatók:
Tesztprojekt létrehozása a Visual Studio 2019-ben
Teszteket definiálhat és futtathat egy vagy több tesztprojekten belül. Hozza létre a projekteket ugyanabban a megoldásban, mint a tesztelni kívánt kód.
Új tesztprojekt hozzáadása meglévő megoldáshoz:
- Kattintson a jobb gombbal a Megoldás csomópontra Megoldáskezelő.
- A helyi menüben válassza a(z) >Új projekt hozzáadásalehetőséget.
- Állítsa be a Nyelvet C++ -re, majd írja be a tesztet a keresőmezőbe. Az alábbi képernyőképen a C++ Asztali fejlesztés és a UWP-fejlesztési számítási feladat telepítésekor elérhető tesztprojektek láthatók:
Hivatkozás létrehozása más projektekre a megoldásban
A tesztelt projekt függvényeihez való hozzáférés engedélyezéséhez adjon hozzá egy hivatkozást a tesztprojekt projektjéhez. A Megoldáskezelőbennyissa meg a tesztprojektjét. Kattintson a jobb gombbal a Hivatkozások elemre, majd válassza ki a >Hivatkozás Hozzáadásalehetőséget. A Hivatkozás hozzáadása párbeszédpanelen válassza ki a tesztelni kívánt projekteket.
Objektum- vagy tárfájlokra mutató hivatkozás
Ha a tesztkód nem exportálja a tesztelni kívánt függvényeket, adja hozzá a kimeneti .obj vagy .lib fájlokat a tesztprojekt függőségeihez. További információ: A tesztek csatolása az objektum- vagy tárfájlokhoz. Ne tartalmazzon olyan objektumfájlokat, amelyek main függvénnyel vagy más szokásos belépési ponttal rendelkeznek, például wmain, WinMainvagy DllMain. Amikor új forrásfájlokat ad hozzá a projekthez, frissítse a tesztprojekt függőségeit úgy, hogy azok tartalmazzák a megfelelő objektumfájlokat.
#include-irányelvek hozzáadása fejlécfájlokhoz
Az egységteszt .cpp fájlban adjon hozzá egy #include utasítást minden olyan fejlécfájlhoz, amely deklarálja a tesztelni kívánt típusokat és függvényeket. Írja be a #include "-t, majd az IntelliSense aktiválódik, hogy segítsen választani. Ismételje meg az összes további fejléc esetén.
Borravaló
Ha el szeretné kerülni, hogy minden belefoglalási utasításba írja be a teljes elérési utat a forrásfájlban, adja hozzá a szükséges mappákat Project>Properties>C/C++>Általános>További belefoglalási könyvtárak.
Írási tesztelési módszerek
Jegyzet
Ez a szakasz a C/C++-hoz készült Microsoft Unit Testing Framework szintaxisát mutatja be. További információ: Microsoft.VisualStudio.TestTools.CppUnitTestFramework API-referencia.
A Google Test dokumentációért lásd a Google Test alapozót. A Boost.Test-hez lásd, Boost Test library: The unit test framework.
A tesztprojektben lévő .cpp fájlhoz egy csonkosztály és metódus van definiálva. Példákat mutatnak a tesztkód írására. Az aláírások a TEST_CLASS és TEST_METHOD makrókat használják, így a metódusok a Test Explorer ablakából felderíthetők.
TEST_CLASS és TEST_METHOD a Microsoft Native Test Framework része. Test Explorer hasonló módon felderíti a tesztelési módszereket más támogatott keretrendszerekben.
A TEST_METHOD ürességet ad vissza. Teszteredmény létrehozásához a Assert osztály statikus metódusaival tesztelje a tényleges eredményeket a várt eredmények alapján. Az alábbi példában tegyük fel, hogy a MyClass-nak van egy konstruktora, amely elfogad egy std::string-et. Ez a példa bemutatja, hogyan tesztelheti, hogy a konstruktor a várt módon inicializálja az osztályt:
TEST_METHOD(TestClassInit)
{
std::string name = "Bill";
MyClass mc(name);
Assert::AreEqual(name, mc.GetName());
}
Az előző példában a Assert::AreEqual hívás eredménye határozza meg, hogy a teszt sikeres vagy sikertelen-e. A Assert osztály számos más módszert tartalmaz a várt eredmények és a tényleges eredmények összehasonlítására.
Tesztelési módszerekhez hozzáadhat tulajdonságokat, hogy megadja a teszttulajdonosokat, a prioritást és egyéb információkat. Ezután ezekkel az értékekkel rendezheti és csoportosíthatja a teszteket Test Explorer. További információ: Egységtesztek futtatása a Test Explorerhasználatával.
A tesztek futtatása
A Tesztelés menüben válassza Test Explorerlehetőséget. Az alábbi ábra egy tesztprojektet mutat be a tesztek futtatása előtt.
Jegyzet
A CTest Test Explorer integrációja még nem érhető el. CTest-tesztek futtatása a CMake főmenüjében.
Ha valamelyik teszt hiányzik az ablakból, hozza létre a tesztprojektet úgy, hogy a jobb gombbal a csomópontra kattint a Megoldáskezelőben, majd válassza a Build vagy Rebuildlehetőséget.
A Test Explorerterületen válassza a Az összesfuttatása lehetőséget, vagy válassza ki a futtatni kívánt teszteket. Kattintson jobb gombbal egy tesztre az egyéb lehetőségek eléréséhez, beleértve a hibakeresési módban való futtatást, ha engedélyezve vannak a töréspontok. Az összes teszt futtatása után az ablak megjeleníti az átadott és a sikertelen teszteket.
Sikertelen tesztek esetén az üzenet olyan részleteket jelenít meg, amelyek segítenek az ok diagnosztizálásában. Kattintson a jobb gombbal a sikertelen tesztre egy előugró menü megjelenítéséhez. Válassza a Hibakeresés lehetőséget a hiba helyének lépésenkénti vizsgálatához.
Az Test Explorerhasználatával kapcsolatos további információkért lásd: Egységtesztek futtatása a Test Explorerhasználatával.
További információ az egységtesztelésről: Egységteszt alapjai.
A CodeLens használata
Visual Studio 2017 és újabb verziók (Professional és Enterprise kiadások)
CodeLens lehetővé teszi az egységteszt állapotának gyors megtekintését anélkül, hogy elhagyná a kódszerkesztőt.
Inicializálja a CodeLenst egy C++ egységtesztelési projekthez az alábbi módokon:
- Szerkessze és hozza létre a tesztprojektet vagy -megoldást.
- A projekt vagy megoldás újraépítése.
- A teszteket a Test Explorer ablakából futtathatja.
A CodeLens inicializálása után az egyes egységtesztek fölött látható a tesztállapot ikonja.
További információkért válassza az ikont, vagy futtassa vagy hibakeresést hajtsa végre az egységtesztben: