共用方式為


MSTest 程式碼分析

MSTest 分析 (“MSTESTxxxx”) 規則會檢查您的 C# 或 Visual Basic 程式代碼是否有安全性、效能、設計和其他問題。

提示

如果您使用 Visual Studio,許多分析工具規則都有相關聯的 代碼修正,您可以套用以更正問題。 程式碼修正會顯示在燈泡圖示功能表中。

規則會組織成類別,例如效能使用方式...

從 MSTest.TestFramework 3.7 開始,MSTest.Analyzers NuGet 套件是架構的相依性。 針對舊版,您必須使用 MSTest 中繼套件,或明確新增 MSTest.Analyzers 的套件參考。

MSTestAnalysisMode

從 MSTest 3.8 開始,可以使用名為 MSTestAnalysisMode 的 MSBuild 屬性來確定哪些分析器在不同的嚴重性級別下被啟用。

提示

若要查看哪個模式下啟用了哪些規則及其嚴重性,您可以瀏覽至 NuGet 快取中您感興趣的版本套件,找出 globalconfigs 目錄,然後開啟對應於分析模式的 .globalconfig 檔案。 如需尋找 NuGet 快取目錄的詳細資訊,請參閱 管理全域套件、快取和暫存資料夾。 從該目錄中,找出 mstest.analyzers 目錄,然後找到 版本 (3.8 和更新版本),然後 globalconfigs。 或者,您可以從 nuget.org 下載您所感興趣的 NuGet 套件,並在 NuGet 套件總管(Windows 應用程式)中檢視,或者直接在 NuGet 套件總管的 Web 應用程式版本中檢視。

此屬性的可用值:

None

此值會將所有分析器設定為 none 嚴重性,並停用所有分析器。 然後,您可以使用 .editorconfig.globalconfig 檔案來啟用個別分析器。

Default

此設定會遵循每個規則的預設記載行為。

  • 默認啟用的規則會使用其預設嚴重性。
  • 默認停用的規則會使用 none 嚴重性。

備註

預設以警告形式啟用的規則,是預期會在執行時引發問題的違規行為。

這是大部分開發人員預期使用的模式。 預設以 Info【suggestion】嚴重性啟用的規則會被提升為警告。 下列規則會在RecommendedAll模式中被升級為錯誤:

All

此模式比 Recommended更咄咄逼人。 所有規則都會啟用為警告。 此外,下列規則會提升為錯誤:

類別

設計規則

設計規則 可協助您建立和維護符合適當設計和良好作法的測試套件。

效能規則

效能規則 支援高效能測試。

抑制規則

隱藏規則 支持隱藏來自其他規則的診斷。

使用規則

使用規則 支援 MSTest 的適當使用方式。

MSTESTEXP

MSTest 的數個 API 會以 ExperimentalAttribute裝飾。 這個屬性表示 API 是實驗性的,而且在未來的 MSTest 版本中可能會移除或變更。 屬性是用來識別尚未穩定且可能不適合生產用途的 API。

MSTESTEXP 診斷會警示您在程式代碼中使用實驗 API。 若要使用 SuppressMessageAttribute隱藏此診斷,請將下列程式代碼新增至您的專案:

using System.Diagnostics.CodeAnalysis;

[assembly: SuppressMessage("MSTESTEXP", "Justification")]

或者,您可以將下列程式代碼新增至專案,以使用預處理器指示詞隱藏此診斷:

#pragma warning disable MSTESTEXP
        // API that is causing the warning.
#pragma warning restore MSTESTEXP