共用方式為


程式碼覆蓋範圍擴充功能

本文列出並說明與程式代碼涵蓋範圍功能相關的所有 Microsoft.Testing.Platform 延伸模組。

您可以使用程式碼覆蓋率功能,來判斷例如單元測試等程式測試所測試的專案程式碼比例。 為了有效防範錯誤,您的測試應該執行或 涵蓋大部分程式碼

Microsoft程式代碼涵蓋範圍

Microsoft的程式碼涵蓋分析可以應用於受控(CLR)和非受控(原生)程式碼。 同時支援靜態和動態檢測。 此延伸模組隨附於 Microsoft.Testing.Extensions.CodeCoverage NuGet 套件中。

註記

預設會在擴充功能中停用非受控(原生)程式碼涵蓋範圍。 視需要使用旗標 EnableStaticNativeInstrumentationEnableDynamicNativeInstrumentation 加以啟用。 如需非受控程式碼覆蓋範圍的詳細資訊,請參閱 靜態和動態本機化檢測

重要

套件附帶 Microsoft .NET 程式庫,採用閉源但免費使用的授權模式。

如需Microsoft程式代碼涵蓋範圍的詳細資訊,請參閱其 GitHub 頁面

Microsoft程式代碼涵蓋範圍提供下列選項:

選項 描述
--coverage 使用 dotnet-coverage 工具收集程式代碼涵蓋範圍。
--coverage-output 所產生涵蓋範圍檔案的名稱或路徑。 預設情況下,檔案是 TestResults/<guid>.coverage
--coverage-output-format 輸出檔案格式。 支援的值為:coveragexmlcobertura。 預設值為 coverage
--coverage-settings XML 代碼涵蓋範圍設定

如需可用選項的詳細資訊,請參閱 設定範例

註記

在 Microsoft.Testing.Extensions.CodeCoverage 中,IncludeTestAssembly 的預設值是 false,而在 VSTest 以前則是 true。 這意味著測試專案預設被排除。 如需詳細資訊,請參閱 程式代碼涵蓋範圍設定

被單

重要

coverlet.collector NuGet 套件是專為 VSTest 所設計,無法與 Microsoft.Testing.Platform搭配使用。

目前沒有 Coverlet 擴充功能,但您可以使用 Coverlet .NET 全域工具

假設您已經安裝 Coverlet 全域工具,您現在可以執行:

coverlet .\bin\Debug\net8.0\TestProject2.dll --target "dotnet" --targetargs "test .\bin\Debug\net8.0\TestProject2.dll --no-build"