Bagikan melalui


Ekstensi cakupan kode

Artikel ini mencantumkan dan menjelaskan semua ekstensi Microsoft.Testing.Platform yang terkait dengan kemampuan cakupan kode.

Anda dapat menggunakan fitur cakupan kode untuk menentukan proporsi kode proyek Anda yang sedang diuji oleh pengujian berkode seperti pengujian unit. Untuk melindungi secara efektif dari bug, pengujian Anda harus menguji atau mencakup proporsi besar dari kode Anda.

Cakupan kode Microsoft

Analisis Cakupan Kode Microsoft dimungkinkan untuk kode terkelola (CLR) dan tidak dikelola (asli). Instrumentasi statis dan dinamis didukung. Ekstensi ini dikirim sebagai bagian dari paket Microsoft.Testing.Extensions.CodeCoverage NuGet.

Nota

Cakupan kode yang tidak dikelola (asli) dinonaktifkan dalam ekstensi secara default. Gunakan bendera EnableStaticNativeInstrumentation dan EnableDynamicNativeInstrumentation untuk mengaktifkannya jika diperlukan. Untuk informasi selengkapnya tentang cakupan kode yang tidak dikelola, lihat Instrumentasi asli statis dan dinamis.

Penting

Paket dikirim dengan pustaka Microsoft .NET yang bersifat sumber tertutup dan model lisensi gratis untuk digunakan.

Untuk informasi selengkapnya tentang cakupan kode Microsoft, lihat halaman GitHub .

Cakupan Kode Microsoft menyediakan opsi berikut:

Pilihan Deskripsi
--coverage Kumpulkan cakupan kode menggunakan alat dotnet-coverage.
--coverage-output Nama atau jalur file cakupan yang dihasilkan. Secara bawaan, file ini adalah TestResults/<guid>.coverage.
--coverage-output-format Format keluaran file. Nilai yang didukung adalah: coverage, xml, dan cobertura. Defaultnya adalah coverage.
--coverage-settings pengaturan cakupan kode XML.

Untuk informasi selengkapnya tentang opsi yang tersedia, lihat pengaturan dan sampel .

Nota

Nilai IncludeTestAssembly default di Microsoft.Testing.Extensions.CodeCoverage adalah false, sementara dulunya berada true di VSTest. Ini berarti bahwa proyek pengujian dikecualikan secara default. Untuk informasi selengkapnya, lihat Konfigurasi Cakupan Kode.

Kompatibilitas versi

Tabel berikut menunjukkan kompatibilitas antara versi Microsoft.Testing.Extensions.CodeCoverage dan Microsoft.Testing.Platform yang berbeda:

Microsoft.Testing.Extensions.CodeCoverage Microsoft.Testing.Platform
18.1.x 2.0.x
18.0.x 1.8.x
17.14.x 1.6.2

Nota

Untuk kompatibilitas terbaik dan fitur terbaru, disarankan untuk menggunakan versi terbaru dari kedua paket bersama-sama.

Selimut

Coverlet Microsoft Testing Platform Integration (coverlet.MTP) adalah ekstensi asli untuk Microsoft.Testing.Platform yang mengimplementasikan coverlet.collector fungsionalitas.

coverlet.MTP Tambahkan paket NuGet ke proyek pengujian Anda:

dotnet add package coverlet.MTP

Untuk mengumpulkan cakupan kode, jalankan pengujian Anda dengan --coverlet flag.

dotnet test --coverlet

Atau jalankan program uji Anda dengan --coverlet flag:

dotnet exec <test-assembly.dll> --coverlet

Setelah uji coba, file yang coverage.json berisi hasil dihasilkan di direktori saat ini.

coverlet.MTP menyediakan opsi berikut:

Pilihan Deskripsi
--coverlet Aktifkan pengumpulan data cakupan kode.
--coverlet-output-format <format> Format keluaran untuk laporan peliputan. Format yang didukung: json, , lcovopencover, cobertura, dan teamcity. Tentukan beberapa kali untuk menyertakan lebih dari satu format.
--coverlet-include <filter> Sertakan rakitan yang cocok dengan filter, seperti [Assembly]Type. Tentukan beberapa kali untuk menambahkan lebih banyak filter.
--coverlet-include-directory <path> Sertakan direktori tambahan untuk file sumber. Ulangi beberapa kali untuk menambahkan lebih banyak direktori.
--coverlet-exclude <filter> Kecualikan rakitan yang cocok dengan filter, seperti [Assembly]Type. Tentukan beberapa kali untuk menambahkan lebih banyak filter.
--coverlet-exclude-by-file <pattern> Kecualikan file sumber yang cocok dengan pola glob. Tentukan beberapa kali untuk menambahkan lebih banyak pola.
--coverlet-exclude-by-attribute <attribute> Kecualikan metode atau kelas yang didekorasi dengan atribut tertentu. Tentukan beberapa kali untuk menambahkan lebih banyak atribut.
--coverlet-include-test-assembly Sertakan assembly pengujian dalam laporan cakupan.
--coverlet-single-hit Batasi jumlah temuan hingga satu untuk setiap lokasi dalam kode.
--coverlet-skip-auto-props Lewati properti yang diterapkan secara otomatis dalam cakupan.
--coverlet-does-not-return-attribute <attribute> Atribut yang menandai metode sebagai tidak kembali. Tentukan beberapa kali untuk menambahkan lebih banyak atribut.
--coverlet-exclude-assemblies-without-sources <value> Kecualikan rakitan tanpa kode sumber. Nilai: MissingAll, MissingAny, dan None.

Untuk informasi selengkapnya, lihat documentasi coverlet.MTP.