Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A Microsoft.CodeCoverage.Console egy parancssori eszköz, amellyel c++ és C#-kód kódlefedettségeket gyűjthet. Emellett támogatja a kódlefedettségi jelentések egyesítését és konvertálását. Ez az eszköz kódlefedettség gyűjtésére használható nem tesztelési forgatókönyvekben (például egy egyszerű konzolalkalmazás esetében).
Ez az eszköz a dotnet-coverage dotnet eszköz bővítménye, amely támogatja a következő forgatókönyveket:
- Biztonsági funkciókkal teszi lehetővé ASP.NET kódlefedettségi adatok gyűjtését az IIS-ből.
- C++ kód kódlefedettségeinek gyűjtése.
Jegyzet
A kódlefedettség a Visual Studio Enterprise, a Community és a Professional kiadásokban érhető el. A Visual Studio 2022-ben és a korábbi verziókban a kódlefedettségi funkció a Visual Studio Enterprise kiadásra korlátozódott.
Jegyzet
A kódlefedettség csak a Visual Studio Enterprise-nal érhető el. .NET-kódlefedettség esetén a parancssori eszközt is használhatja, dotnet-coverage.
A Microsoft.CodeCoverage.Console a Visual Studio 2022 17.3-ban érhető el a Common7\IDE\Extensions\Microsoft\CodeCoverage.Consolemappában. Használhatja egy fejlesztői parancssorban és egy fejlesztői PowerShellben:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console --help
Description:
Code coverage tools.
Usage:
Microsoft.CodeCoverage.Console [command] [options]
Options:
--version Show version information
-?, -h, --help Show help and usage information
Commands:
collect <command> <args> Collect code coverage from inner process and subprocesses.
connect <session> <command> <args> Connects to an existing code coverage session and collects code coverage from
inner process and subprocesses.
merge <files> Merge coverage reports
shutdown <session> Close existing code coverage collection.
snapshot <session> Creates coverage file for existing code coverage collection.
instrument <input-file> Instruments native and managed binary.
uninstrument <input-file> Restore original binary.
Adatgyűjtés, csatlakozás, leállítás, egyesítés, pillanatkép készítése és visszavonás parancsok
A Microsoft.CodeCoverage.Console eszköz a dotnet-coverage dotnet eszköz bővítménye. A collect, connect, shutdown, merge, snapshot és az uninstrument parancsok dokumentációja itttalálható.
A Microsoft.CodeCoverage.Console további biztonsági funkciókat is támogat, amelyek lehetővé teszik ASP.NET kódlefedettségi adatok gyűjtését az IIS-ből. Emellett a Microsoft.CodeCoverage.Console eszköz támogatja a C++ kód kódlefedettségeinek gyűjtését. A instrument parancs ezekre a forgatókönyvekre jellemző.
Műszer parancs
Az "instrument" parancsot a lemezen található natív vagy felügyelt bináris fájlok instrumentálására használják.
Áttekintés
Microsoft.CodeCoverage.Console instrument
<input-file>
[-s|--settings <settings>] [-id|--session-id <session-id>]
[-o|--output <output>]
[-l|--log-file <log-file>] [-ll|--log-level <log-level>]
[-dco|--disable-console-output] [--nologo]
[-?|-h|--help]
Érvek
<input-file>A bemeneti bináris.
Beállítások
-s|--settings <settings>Beállítja az XML-kódlefedettségi beállítások elérési útját. A beállításfájl használatával kizárhat néhány modult vagy metódust a kódlefedettség-elemzésből. A formátum megegyezik a .runsettings fájlban található adatgyűjtő konfigurációval. További információ: Kódlefedettségi elemzés testreszabása.
-id|--session-id <session-id>Megadja a kódlefedettségi munkamenet azonosítóját. Ha nincs megadva, az eszköz véletlenszerű GUID-azonosítót hoz létre.
-o|--output <output>Beállítja a kimeneti fájl bináris elérési útját. Ha nincs megadva, a műszeres vizsgálat helyben történik.
-l|--log-file <log-file>Beállítja a naplófájl elérési útját. Ha megad egy könyvtárat (a végén egy elérésiút-elválasztóval), a rendszer új naplófájlt hoz létre az elemzés alatt álló minden folyamathoz.
-ll|--log-level <log-level>Beállítja a naplószintet. Támogatott értékek:
Error,InfoésVerbose.-dco|--disable-console-outputLetiltja a konzol kimenetét.
--nologoNe jelenítse meg a Kódlefedettség feliratot.
Statikus kódlefedettség C++ kódhoz
A Microsoft.CodeCoverage.Console eszközzel statikus rendszerállapot használatával gyűjthetők a C++ kódlefedettségi adatai. Három különböző módszer érhető el, amelyeket használhat. A szemléltetés érdekében tegyük fel, hogy egy egyszerű C++ konzolalkalmazással rendelkezünk (a /PROFILElehetőséggel összekapcsolva):
D:\ConsoleApplication\x64\Debug> .\ConsoleApplication.exe
Hello World!
Kódlefedettség a konfigurációs fájlt használó collect parancs segítségével (C++)
Ha nem szeretné használni a instrument parancsot, ehelyett egy konfigurációs fájllal adhatja meg az eszközhöz szükséges fájlokat az alábbiak szerint:
<ModulePaths>
<IncludeDirectories>
<Directory>D:\ConsoleApplication\x64\Debug</Directory>
</IncludeDirectories>
</ModulePaths>
Ezután gyűjtse össze a kódlefedettségeket az alábbiak szerint:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect --settings coverage.config .\ConsoleApplication.exe
SessionId: 85d9d49e-38a7-43a4-81ff-9e12f0e6b04b
Hello World!
Code coverage results: output.coverage.
A beállításfájl használatával kizárhat néhány modult vagy metódust a kódlefedettség-elemzésből. A formátum megegyezik a .runsettings fájlban található adatgyűjtő konfigurációval. További információ: Kódlefedettségi elemzés testreszabása.
Kódlefedettség az instrument és collect parancsok használatával (C++)
A kódlefedettségi adatok gyűjtése előtt először a binárist a következőképpen kell beállítani:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console instrument ConsoleApplication.exe
Input file successfully instrumented.
Ezután gyűjtse össze a kódlefedettségeket az alábbiak szerint:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect .\ConsoleApplication.exe
SessionId: e85e657f-9ff3-42a0-88d7-2349598a1ecd
Hello World!
Code coverage results: output.coverage.
Kódlefedettség eszközparancs használatával és parancs összegyűjtése kiszolgáló módban (C++)
Ezzel a módszerrel elkülönítheti a kódlefedettségi gyűjteményt az alkalmazás futtatásától. Először a következőképpen alakítsa ki a binárist:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console instrument --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 ConsoleApplication.exe
Input file successfully instrumented.
Jegyzet
Ebben a forgatókönyvben munkamenet-azonosítót kell használni annak biztosításához, hogy az alkalmazás kapcsolódni tud, és adatokat biztosítson a külső gyűjtőnek.
A második lépésben a kódlefedettségi gyűjtőt az alábbiak szerint kell elindítania:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 --server-mode
SessionId: 73c34ce5-501c-4369-a4cb-04d31427d1a4
Ezután indítsa el az alkalmazást az alábbiak szerint:
D:\ConsoleApplication\x64\Debug>.\ConsoleApplication.exe
Hello World!
Jegyzet
A műszerezett natív bináris tartalmaz egy hivatkozást a(z) static_covrun64.dll-ra. Győződjön meg arról, hogy ez a fájl az instrumentált bináris mellett található, vagy a static_covrun64.dll-t tartalmazó könyvtár fel van tüntetve a Path környezeti változóban. A collect és connect parancsok automatikusan hozzáadnak megfelelő könyvtárakat Path.
Végül zárja be a gyűjtőt az alábbi lépések szerint:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console shutdown 73c34ce5-501c-4369-a4cb-04d31427d1a4