Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Microsoft.CodeCoverage.Console, C++ ve C# kodu için kod kapsamı toplamak için kullanabileceğiniz bir komut satırı aracıdır. Ayrıca kod kapsamı raporlarını birleştirmeyi ve dönüştürmeyi de destekler. Bu araç, test dışı senaryolarda (örneğin, basit bir konsol uygulaması için) kod kapsamı toplamak için kullanılabilir.
Bu araç, aşağıdaki senaryolar için destek ekleyen dotnet-coverage dotnet aracının bir uzantısıdır:
- IIS'den ASP.NET kod kapsamı verilerini toplamayı etkinleştirmek için güvenlik özellikleri ekler.
- C++ kodunun kod kapsamasını toplama.
Not
Kod kapsamı Visual Studio Enterprise, Community ve Professional sürümlerinde kullanılabilir. Visual Studio 2022 ve önceki sürümlerde kod kapsamı özelliği Visual Studio Enterprise sürümüyle sınırlıydı.
Microsoft.CodeCoverage.Console, Visual Studio 2022 17.3'te Common7\IDE\Extensions\Microsoft\CodeCoverage.Consoleklasörünün altında bulunur. Bunu bir Geliştirici Komut İstemi ve Geliştirici PowerShell'de kullanabilirsiniz:
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.
Topla, bağlan, kapat, birleştir, anlık görüntü al ve kaldır komutları
Microsoft.CodeCoverage.Console aracı, dotnet-coverage dotnet aracının bir uzantısıdır. Toplama, bağlanma, kapatma, birleştirme, anlık görüntü ve yetkisiz erişim komutlarına yönelik belgeler burada bulunabilir.
Microsoft.CodeCoverage.Console, IIS'den ASP.NET kod kapsamı verilerinin toplanmasına olanak tanıyan ek güvenlik özelliklerini destekler. Ayrıca, Microsoft.CodeCoverage.Console aracı C++ kodu için kod kapsamı toplamayı destekler.
instrument komutu bu senaryolara özgüdür.
araç komutu
instrument komutu, diskteki yerel veya yönetilen ikili dosyaları enstrümantasyon yapmak için kullanılır.
Özet
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]
Tartışmalar
<input-file>Giriş ikili
Seçenekler
-s|--settings <settings>XML kod kapsamı ayarlarının yolunu ayarlar. Ayarlar dosyası, bazı modülleri veya yöntemleri kod kapsamı analizinin dışında tutmak için kullanılabilir. Biçim, .runsettings dosyasının içindeki veri toplayıcı yapılandırmasıyla aynıdır. Daha fazla bilgi için Kod Kapsamı Analizini Özelleştirmebölümüne bakın.
-id|--session-id <session-id>Kod kapsamı oturum kimliğini belirtir. Sağlanmazsa, araç rastgele bir GUID oluşturur.
-o|--output <output>Çıkış ikili dosyasının yolunu ayarlar. Sağlanmazsa, ölçüm bulunduğu yerde yapılacaktır.
-l|--log-file <log-file>Günlük dosyası yolunu ayarlar. Bir dizin sağladığınızda (sonunda bir yol ayırıcı ile), analiz altındaki her işlem için yeni bir günlük dosyası oluşturulur.
-ll|--log-level <log-level>Günlük düzeyini ayarlar. Desteklenen değerler:
Error,InfoveVerbose.-dco|--disable-console-outputKonsol çıkışını devre dışı bırakır.
--nologoKod Kapsamı başlığını görüntülemeyin.
C++ kodu için statik kod kapsamı
Microsoft.CodeCoverage.Console aracı, statik araçsal kullanımı kullanarak C++ için kod kapsamı toplamak için kullanılabilir. Kullanabileceğiniz üç farklı yöntem vardır. Göstermek için basit bir C++ konsol uygulamamız olduğunu varsayalım (/PROFILEseçeneğiyle bağlantılı):
D:\ConsoleApplication\x64\Debug> .\ConsoleApplication.exe
Hello World!
Yapılandırma dosyasıyla collect komutunu kullanan kod kapsamı (C++)
instrument komutunu kullanmak istemiyorsanız, yerine hangi dosyaların enstrüman edileceğini belirtmek için aşağıdaki gibi bir ayarlama dosyası kullanabilirsiniz.
<ModulePaths>
<IncludeDirectories>
<Directory>D:\ConsoleApplication\x64\Debug</Directory>
</IncludeDirectories>
</ModulePaths>
Ardından kod kapsamını aşağıdaki gibi toplayın:
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.
Ayarlar dosyası, bazı modülleri veya yöntemleri kod kapsamı analizinin dışında tutmak için kullanılabilir. Biçim, .runsettings dosyasının içindeki veri toplayıcı yapılandırmasıyla aynıdır. Daha fazla bilgi için Kod Kapsamı Analizini Özelleştirmebölümüne bakın.
Araç ve toplama komutlarını kullanarak kod kapsamı (C++)
Kod kapsamı verilerini toplamadan önce binar dosyayı aşağıdaki şekilde araçlandırın:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console instrument ConsoleApplication.exe
Input file successfully instrumented.
Ardından kod kapsamını aşağıdaki gibi toplayın:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect .\ConsoleApplication.exe
SessionId: e85e657f-9ff3-42a0-88d7-2349598a1ecd
Hello World!
Code coverage results: output.coverage.
C++ için sunucu modunda enstrümantasyon komutunu ve toplama komutunu kullanarak kod kapsamı.
Bu yöntemi kullanarak kod kapsamı koleksiyonunu uygulamanızı çalıştırmaktan ayırabilirsiniz. İlk olarak, ikili dosyanızı aşağıdaki gibi hazırlayın:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console instrument --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 ConsoleApplication.exe
Input file successfully instrumented.
Not
Uygulamanın dış toplayıcıya bağlanıp veri sağlayabilmesi için bu senaryoda oturum kimliğinin kullanılması gerekir.
İkinci adımda kod kapsamı toplayıcısını aşağıdaki gibi başlatmanız gerekir:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 --server-mode
SessionId: 73c34ce5-501c-4369-a4cb-04d31427d1a4
Ardından uygulamayı aşağıdaki gibi başlatın:
D:\ConsoleApplication\x64\Debug>.\ConsoleApplication.exe
Hello World!
Not
Enstrümanlanmış yerel ikili, static_covrun64.dllreferansını içerir. Bu dosyanın, araçlı ikili dosyanın yanında olduğundan veya static_covrun64.dll bulunduğu dizinin Path ortam değişkeninde listelendiğinden emin olun.
collect ve connect komutları Path otomatik olarak uygun dizinler ekliyor.
Son olarak, toplayıcıyı aşağıdaki gibi kapatın:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console shutdown 73c34ce5-501c-4369-a4cb-04d31427d1a4