共用方式為


MSTest 使用規則

支援適當使用 MSTest 的規則。

標識碼 名字 描述
MSTEST0002 TestClassShouldBeValidAnalyzer 測試類別、標示為 [TestClass] 屬性的類別,應遵守 MSTest 視為有效的下列版面配置:
- 如果已設定 [assembly: DiscoverInternals] 屬性,則應該 public 它(或 internal
不應是 static
- 它不應該是一般性的。
MSTEST0003 TestMethodShouldBeValidAnalyzer 測試方法、以 [TestMethod] 屬性標示的方法,應遵守 MSTest 視為有效的下列配置:
- 應為 public(如果已設定 [assembly: DiscoverInternals] 屬性,則為 internal
- 不應該 static
- 它不應該是泛型
- 不應該 abstract
- 傳回類型應該是 voidTask
- 它不應該是 async void
- 它不應該是特殊的方法(例如終結器或運算子)。
MSTEST0005 TestContextShouldBeValidAnalyzer TestContext 屬性應遵循下列版面配置,才能有效:
- 它應該是一個屬性
- 應該是 public(如果已設定 [assembly: DiscoverInternals] 屬性,則應該是 internal
- 不應該 static
- 不應該是唯讀的。
MSTEST0007 UseAttributeOnTestMethodAnalyzer 下列測試屬性應該只套用在標示為 TestMethodAttribute 屬性的方法上:
- [CssIteration]
- [CssProjectStructure]
- [Description]
- [ExpectedException]
- [Owner]
- [Priority]
- [TestProperty]
- [WorkItem]
MSTEST0008 TestInitializeShouldBeValidAnalyzer 標示為 [TestInitialize] 的方法需遵循以下格式才能有效:
- 它應該是 public
- 不應該 static
它不應該是泛泛的
- 不應該 abstract
- 它不應該採用任何參數
- 傳回型別應 voidTaskValueTask
- 不應該 async void
- 它不應該是特殊的方法(完成項,運算元...)。
MSTEST0009 測試清理應有效分析器 標示 [TestCleanup] 的方法應遵循下列格式以保證有效:
- 它應該是 public
- 不應該是 static
- 它不應該是泛型
- 不應該 abstract
- 它不應該採用任何參數
- 傳回型別應 voidTaskValueTask
- 這不應該是 async void
- 它不應該是特殊的方法(完成項,運算元...)。
MSTEST0010 ClassInitializeShouldBeValidAnalyzer 標記 [ClassInitialize] 的方法應遵循下列布局才有效:
- 它應該是 public
- 它應該是 static
- 它不應該是一般化的
- 它應該採用類型為 TestContext 的一個參數
- 傳回型別應 voidTaskValueTask
- 不應該 async void
- 它不應該是特殊的方法(完成項,運算元...)。
MSTEST0011 ClassCleanupShouldBeValidAnalyzer 標示 [ClassCleanup] 的方法應遵循下列配置以確保有效性:
- 它應該是 public
- 它應該是 static
- 它不應該是泛型
- 它不應該採用任何參數
- 傳回型別應 voidTaskValueTask
- 不應該 async void
- 它不應該是特殊的方法(完成項,運算元...)。
MSTEST0012 AssemblyInitializeShouldBeValidAnalyzer 標示 [AssemblyInitialize] 的方法應遵循下列格式以確保有效:
- 它應該是 public
- 它應為 static
- 它不應該是太通用的
- 它應該採用類型為 TestContext 的一個參數
- 傳回型別應 voidTaskValueTask
- 不應該是 async void
- 它不應該是特殊的方法(完成項,運算元...)。
MSTEST0013 AssemblyCleanupShouldBeValidAnalyzer 為使標示 [AssemblyCleanup] 的方法有效,應遵循以下格式:
- 它應該是 public
- 它應該是 static
- 它不應該是泛型
- 它不應該採用任何參數
- 傳回型別應 voidTaskValueTask
- 不應該 async void
- 它不應該是特殊的方法(完成項,運算元...)。
MSTEST0014 資料列效驗分析器 (DataRowShouldBeValidAnalyzer) [DataRow] 實例必須具備下列版面配置,才能有效:
- 它們只應在測試方法上設定
- 參數數量應該符合方法的參數數量
- 自變數類型應該符合方法自變數類型
MSTEST0017 AssertionArgsShouldBePassedInCorrectOrder 斷言引數應以正確的順序傳遞
MSTEST0018 數據應有效分析器 [DynamicData] 標記的方法也應該以 [TestMethod] 標示(或衍生屬性)
MSTEST0023 DoNotNegateBooleanAssertionAnalyzer 不要否定布爾值判斷提示
MSTEST0024 DoNotStoreStaticTestContextAnalyzer 請勿將 TestContext 儲存在靜態成員中
MSTEST0026 AssertionArgsShouldAvoidConditionalAccessRuleId 避免在斷言中使用條件式存取
MSTEST0030 應包括測試方法的類型應該是測試類別 包含 [TestMethod] 的類型應標示為 [TestClass]
MSTEST0031 DoNotUseSystemDescriptionAttribute 'System.ComponentModel.DescriptionAttribute' 在測試內容中沒有任何作用
MSTEST0032 檢閱始終為真斷言條件分析器 檢閱或移除斷言,因為已知其條件始終為真
MSTEST0034 UseClassCleanupBehaviorEndOfClass 使用 ClassCleanupBehavior.EndOfClass 搭配 [ClassCleanup]
MSTEST0035 使用 DeploymentItem 與測試方法或測試類別標題 [DeploymentItem] 只能在測試類別或測試方法上指定
MSTEST0037 使用正確斷言方法分析器 使用適當的 Assert 方法
MSTEST0038 避免在值類型中使用 Assert.AreSame 的分析器 (AvoidAssertAreSameWithValueTypesAnalyzer) 請勿搭配實值型別使用 Assert.AreSameAssert.AreNotSame