Aracılığıyla paylaş


Kod kapsamı

İpucu

Microsoft.Testing.Platform.MSBuild (MSTest, NUnit ve xUnit çalıştırıcıları tarafından geçişli olarak dahil) kullanılırken, NuGet paketlerini yüklediğinizde kod kapsamı uzantıları otomatik olarak kaydedilir; kod değişikliği gerekmez.

Birim testleri gibi kodlanmış testler tarafından test edilen project kodunuzun oranını belirlemek için kod kapsamı özelliğini kullanabilirsiniz. Hatalara karşı etkili bir şekilde koruma sağlamak için testlerinizin kodunuzun büyük bir kısmını alıştırma yapması veya kapsaması gerekir.

Microsoft kod kapsamı

Microsoft Kod Kapsamı analizi hem yönetilen (CLR) hem de yönetilmeyen (yerel) kod için mümkündür. Hem statik hem de dinamik izleme desteklenir. Bu uzantı , Microsoft.Testing.Extensions.CodeCoverage NuGet paketini gerektirir.

Uyarı

Yönetilmeyen (yerel) kod kapsamı, uzantıda varsayılan olarak devre dışı bırakılır. Gerekirse etkinleştirmek için EnableStaticNativeInstrumentation ve EnableDynamicNativeInstrumentation bayraklarını kullanın. Yönetilmeyen kod kapsamı hakkında daha fazla bilgi için statik ve dinamik yerleşik izlemebölümüne bakın.

Önemli

Paket, kapalı kaynaklı ve kullanım için ücretsiz olan Microsoft .NET kitaplığını içeren bir lisanslama modeli ile gönderilir.

Microsoft kod kapsamı hakkında daha fazla bilgi için GitHub sayfasına bakın.

Options

Seçenek Description
--coverage dotnet-coverage aracını kullanarak kod kapsamını toplayın.
--coverage-output Üretilen kapsam dosyasının adı veya yolu. Varsayılan olarak, dosya TestResults/<guid>.coverageolarak ayarlanır.
--coverage-output-format Çıkış dosyası biçimi. Desteklenen değerler şunlardır: coverage, xmlve cobertura. Varsayılan coverage değeridir.
--coverage-settings XML kod kapsamı ayarları.

Kullanılabilir seçenekler hakkında daha fazla bilgi için bkz. settings ve samples.

Uyarı

Microsoft.Testing.Extensions.CodeCoverage aracında varsayılan değer IncludeTestAssembly, VSTest'te ise eski değer false yerine true olmuştur. Bu, test projelerinin varsayılan olarak dışlandığı anlamına gelir. Daha fazla bilgi için bkz. Kod Kapsamı yapılandırması.

Sürüm uyumluluğu

Aşağıdaki tabloda Microsoft.Testing.Extensions.CodeCoverage ile Microsoft.Testing.Platform'un farklı sürümleri arasındaki uyumluluk gösterilmektedir:

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

Uyarı

En iyi uyumluluk ve en son özellikler için her iki paketin de en son sürümlerini birlikte kullanmanız önerilir.

Yatak örtüsü

Coverlet Microsoft Test Platformu Tümleştirmesi (coverlet.MTP), Microsoft.Testing.Platform için coverlet.collector işlevselliğini uygulayan yerli bir uzantıdır.

Test projenize coverlet.MTP NuGet paketini ekleyin:

dotnet add package coverlet.MTP

Kod kapsamını toplamak için testlerinizi şu bayrakla --coverlet çalıştırın:

dotnet test --coverlet

Test yürütülebilir dosyanızı --coverlet bayrağını kullanarak çalıştırabilirsiniz.

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

Test çalıştırmasının ardından geçerli dizinde sonuçları içeren bir coverage.json dosya oluşturulur.

Options

Seçenek Description
--coverlet Kod kapsamı veri toplamayı etkinleştirin.
--coverlet-output-format <format> Kapsam raporu için çıkış biçimleri. Desteklenen biçimler: json, lcov, opencover, coberturave teamcity. Birden fazla format eklemek için birden çok kez belirtin.
--coverlet-include <filter> gibi [Assembly]Typefiltrelerle eşleşen derlemeler ekleyin. Daha fazla filtre eklemek için birden fazla kez tekrar edin.
--coverlet-include-directory <path> Kaynak dosyalar için ek dizinler ekleyin. Birden çok kez belirterek daha fazla dizin ekleyin.
--coverlet-exclude <filter> gibi [Assembly]Typefiltrelerle eşleşen derlemeleri hariç tutun. Daha fazla filtre eklemek için birden fazla kez tekrar edin.
--coverlet-exclude-by-file <pattern> Glob desenleri ile eşleşen kaynak dosyaları hariç tutun. Daha fazla desen eklemek için birden çok kez tanımlayın.
--coverlet-exclude-by-attribute <attribute> Belirli özniteliklerle dekore edilmiş yöntemleri veya sınıfları hariç tutun. Daha fazla öznitelik eklemek için birden çok kez belirtin.
--coverlet-include-test-assembly Test derlemesini kapsam raporuna ekleyin.
--coverlet-single-hit Koddaki her konum için isabet sayısını bir ile sınırlayın.
--coverlet-skip-auto-props Kapsam içinde otomatik uygulanan özellikleri atlayın.
--coverlet-does-not-return-attribute <attribute> Geri dönmeyen olarak yöntemleri işaretleyen öznitelikler. Daha fazla öznitelik eklemek için birden çok kez belirtin.
--coverlet-exclude-assemblies-without-sources <value> Kaynak kodu olmayan derlemeleri dışlayın. Değerler: MissingAll, MissingAnyve None.

Daha fazla bilgi için bkz. coverlet. MTP belgeleri.