MSTest 使用规则

支持正确使用 MSTest 的规则。

Identifier 名称 描述
MSTEST0002 TestClassShouldBeValidAnalyzer 测试类(用 [TestClass] 属性标记的类)应遵循以下布局才会被 MSTest 视为有效:
- 它应为 public(如果设置了 [assembly: DiscoverInternals] 属性,则应为 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 TestCleanupShouldBeValidAnalyzer 标记为 [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] 实例应具有以下布局才能有效:
- 它们只能在测试方法上设置
- 自变量计数应与方法 method 参数计数匹配
- 自变量类型应与 method 自变量类型匹配
MSTEST0017 AssertionArgsShouldBePassedInCorrectOrder 断言参数应按正确的顺序传递
MSTEST0023 DoNotNegateBooleanAssertionAnalyzer 不要否定布尔断言
MSTEST0024 DoNotStoreStaticTestContextAnalyzer 不要将 TestContext 存储在静态成员中
MSTEST0026 AssertionArgsShouldAvoidConditionalAccessRuleId 避免断言中的条件访问