共用方式為


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 模式中可能會升級為錯誤。 例如,MSTEST0003:測試方法應該具有有效的版面配置 會在 RecommendedAll 模式中呈報為錯誤。

All

此模式比 Recommended更咄咄逼人。 所有規則都會啟用為警告。 如 Recommended 模式所述,某些規則可能會在 RecommendedAll 模式中升級為錯誤。 例如,MSTEST0003:測試方法應該具有有效的版面配置 會在 RecommendedAll 模式中呈報為錯誤。

類別

設計規則

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

效能規則

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

抑制規則

抑制規則 支援抑制來自其他規則的診斷。

使用規則

使用規則 支援適當使用 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