Bagikan melalui


Cakupan pengujian kode

Petunjuk / Saran

Saat menggunakan Microsoft.Testing.Platform.MSBuild (secara transitif disertakan oleh pelaksana MSTest, NUnit, dan xUnit), ekstensi cakupan kode didaftarkan secara otomatis ketika Anda menginstal paket NuGet mereka — tanpa perlu perubahan kode.

Anda dapat menggunakan fitur cakupan kode untuk menentukan proporsi kode project 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 memerlukan paket NuGet Microsoft.Testing.Extensions.CodeCoverage .

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 microsoft .NET pustaka sumber tertutup gratis untuk menggunakan model lisensi.

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

Opsi

Option 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 settings dan samples.

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 Code Coverage.

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.

Tambahkan paket coverlet.MTP NuGet ke project 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.

Opsi

Option 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 dokumentasi coverlet.MTP.