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
嚴重性。
備註
默認啟用為警告的規則是預期會在運行時間造成問題的違規。
Recommended
這是我們預期大部分開發人員使用的模式。 預設以 Info【suggestion
】嚴重性啟用的規則會被提升為警告。 此外,某些規則在 Recommended
和 All
模式中可能會升級為錯誤。 例如,MSTEST0003:測試方法應該具有有效的版面配置 會在 Recommended
和 All
模式中呈報為錯誤。
All
此模式比 Recommended
更咄咄逼人。 所有規則都會啟用為警告。 如 Recommended
模式所述,某些規則可能會在 Recommended
和 All
模式中升級為錯誤。 例如,MSTEST0003:測試方法應該具有有效的版面配置 會在 Recommended
和 All
模式中呈報為錯誤。
備註
下列規則會自行選擇加入,並且不會在 Default
、Recommended
或 All
模式中啟用:
類別
設計規則
設計規則 協助您建立和維護符合適當設計和良好作法的測試套件。
效能規則
效能規則 支援高效能測試。
抑制規則
抑制規則 支援抑制來自其他規則的診斷。
使用規則
使用規則 支援適當使用 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