Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Microsoft.CodeCoverage.Console adalah alat baris perintah yang dapat Anda gunakan untuk mengumpulkan cakupan kode untuk kode C++ dan C#. Ini juga mendukung penggabungan dan konversi laporan cakupan kode. Alat ini dapat digunakan untuk mengumpulkan cakupan kode dalam skenario non-pengujian (misalnya, untuk aplikasi konsol sederhana).
Alat ini adalah ekstensi untuk dotnet-coverage dotnet yang menambahkan dukungan untuk skenario berikut:
- Menambahkan fitur keamanan untuk memungkinkan pengumpulan data cakupan kode ASP.NET dari IIS.
- Mengumpulkan cakupan kode untuk kode C++.
Nota
Cakupan kode tersedia di edisi Visual Studio Enterprise, Community, dan Professional. Di Visual Studio 2022 dan versi sebelumnya, fitur cakupan kode terbatas pada edisi Visual Studio Enterprise.
Nota
Cakupan kode hanya tersedia dengan Visual Studio Enterprise. Untuk cakupan kode .NET, Anda bisa menggunakan alat perintah baris, dotnet-coverage.
Microsoft.CodeCoverage.Console tersedia di Visual Studio 2022 17.3 di bawah folder Common7\IDE\Extensions\Microsoft\CodeCoverage.Console. Anda dapat menggunakannya di Command Prompt Pengembang dan PowerShell Pengembang.
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.
Perintah Kumpulkan, sambungkan, matikan, gabungkan, rekam jepret, dan hapus instrumen
Alat Microsoft.CodeCoverage.Console adalah ekstensi untuk dotnet-coverage dotnet tool. Dokumentasi untuk perintah kumpulkan, sambungkan, matikan, gabungkan, rekam jepret, dan penghapusan instrumen dapat ditemukan di sini.
Microsoft.CodeCoverage.Console mendukung fitur keamanan tambahan untuk memungkinkan pengumpulan data cakupan kode ASP.NET dari IIS. Selain itu, alat Microsoft.CodeCoverage.Console mendukung pengumpulan cakupan kode untuk kode C++. Perintah instrument khusus untuk skenario ini.
Perintah alat
Perintah instrumen digunakan untuk menginstrumen biner asli atau terkelola pada disk.
Sinopsis
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]
Argumen
<input-file>Input biner.
Opsi
-s|--settings <settings>Mengatur jalur ke pengaturan cakupan kode XML. File pengaturan dapat digunakan untuk mengecualikan beberapa modul atau metode dari analisis cakupan kode. Formatnya sama dengan konfigurasi pengumpul data di dalam file .runsettings. Untuk keterangan lebih lanjut, lihat Menyesuaikan analisis cakupan kode.
-id|--session-id <session-id>Menentukan ID sesi cakupan kode. Jika tidak disediakan, alat ini akan menghasilkan GUID acak.
-o|--output <output>Mengatur jalur ke berkas output biner. Jika tidak disediakan, instrumentasi akan dilakukan di tempat.
-l|--log-file <log-file>Mengatur jalur file log. Saat Anda menyediakan direktori (dengan pemisah jalur di akhir), file log baru dibuat untuk setiap proses yang sedang dianalisis.
-ll|--log-level <log-level>Mengatur tingkat log. Nilai yang didukung:
Error,Info, danVerbose.-dco|--disable-console-outputMenonaktifkan output konsol.
--nologoJangan tampilkan spanduk Cakupan Kode.
Cakupan kode statis untuk kode C++
Alat Microsoft.CodeCoverage.Console dapat digunakan untuk mengumpulkan cakupan kode untuk C++ menggunakan instrumentasi statis. Ada tiga metode berbeda yang tersedia yang dapat Anda gunakan. Untuk menunjukkan, mari kita asumsikan kita memiliki aplikasi konsol C++ sederhana (ditautkan dengan opsi /PROFILE):
D:\ConsoleApplication\x64\Debug> .\ConsoleApplication.exe
Hello World!
Cakupan kode menggunakan perintah kumpulkan dengan file konfigurasi (C++)
Jika Anda tidak ingin menggunakan perintah instrument, Anda dapat menggunakan file konfigurasi untuk menentukan file yang akan diinstrumentasikan, sebagai berikut:
<ModulePaths>
<IncludeDirectories>
<Directory>D:\ConsoleApplication\x64\Debug</Directory>
</IncludeDirectories>
</ModulePaths>
Kemudian, kumpulkan cakupan kode sebagai berikut:
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.
File pengaturan dapat digunakan untuk mengecualikan beberapa modul atau metode dari analisis cakupan kode. Formatnya sama dengan konfigurasi pengumpul data di dalam file .runsettings. Untuk keterangan lebih lanjut, lihat Menyesuaikan analisis cakupan kode.
Cakupan kode menggunakan perintah 'instrument' dan 'collect' (C++)
Sebelum mengumpulkan data cakupan kode, pertama-tama lakukan instrumenasi terhadap biner sebagai berikut:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console instrument ConsoleApplication.exe
Input file successfully instrumented.
Kemudian, kumpulkan cakupan kode sebagai berikut:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect .\ConsoleApplication.exe
SessionId: e85e657f-9ff3-42a0-88d7-2349598a1ecd
Hello World!
Code coverage results: output.coverage.
Cakupan kode menggunakan perintah instrumen dan kumpulkan perintah dalam mode server (C++)
Dengan menggunakan metode ini, Anda dapat memisahkan kumpulan cakupan kode dari menjalankan aplikasi Anda. Pertama, instrumentasikan biner Anda sebagai berikut:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console instrument --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 ConsoleApplication.exe
Input file successfully instrumented.
Nota
ID Sesi perlu digunakan dalam skenario ini untuk memastikan bahwa aplikasi dapat terhubung dan menyediakan data ke pengumpul eksternal.
Pada langkah kedua, Anda perlu memulai pengumpul cakupan kode sebagai berikut:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 --server-mode
SessionId: 73c34ce5-501c-4369-a4cb-04d31427d1a4
Kemudian, mulai aplikasi sebagai berikut:
D:\ConsoleApplication\x64\Debug>.\ConsoleApplication.exe
Hello World!
Nota
Biner asli yang diinstrumentasi berisi referensi ke static_covrun64.dll. Pastikan bahwa file ini berada di samping biner berinstrumentasi atau direktori tempat static_covrun64.dll berada tercantum dalam variabel lingkungan Path. Perintah collect dan connect menambahkan direktori yang tepat ke Path secara otomatis.
Terakhir, tutup kolektor sebagai berikut:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console shutdown 73c34ce5-501c-4369-a4cb-04d31427d1a4