支持正确使用 MSTest 的规则。
标识符 | 名称 | 说明 |
---|---|---|
MSTEST0002 | TestClass应当是有效分析器 | 测试类(用 [TestClass] 属性标记的类)应遵循以下布局才会被 MSTest 视为有效:如果未设置 public 属性,应为 internal ;如果设置了 public 属性,应为 。- 它不应为 static - 它不应为泛型。 |
MSTEST0003 | 测试方法应为有效分析器 | 测试方法(用 [TestMethod] 属性标记的方法)应遵循以下布局才会被 MSTest 视为有效:如果未设置 public 属性,应为 internal ;如果设置了 public 属性,应为 。- 它不应为 static - 它不应为泛型 - 它不应为 abstract - 返回类型应为 void 或 Task - 它不应为 async void - 它不应为特殊方法(例如终结器或运算符)。 |
MSTEST0005 | 测试上下文应有效分析器 | TestContext 属性应遵循以下布局才有效: - 它应该是一个属性 如果未设置 public 属性,应为 internal ;如果设置了 public 属性,应为 。- 它不应为 static - 它不应为只读。 |
MSTEST0007 | 在测试方法分析器上使用属性 | 以下测试属性应仅应用于标记了 TestMethodAttribute 属性的方法: - [CssIteration] - [CssProjectStructure] - [Description] - [ExpectedException] - [Owner] - [Priority] - [TestProperty] - [WorkItem] |
MSTEST0008 | 测试初始化应是有效分析器 | 标记为 [TestInitialize] 的方法应遵循以下有效的布局:- 它应为 public - 它不应为 static - 它不应为泛型 - 它不应为 abstract - 它不应采用任何参数 - 返回类型应为 void 、Task 或 ValueTask - 它不应为 async void - 它不应是特殊方法(终结器、运算符...)。 |
MSTEST0009 | TestCleanupShouldBeValidAnalyzer | 标记为 [TestCleanup] 的方法应遵循以下有效的布局:- 它应为 public - 它不应为 static - 它不应为泛型 - 它不应为 abstract - 它不应采用任何参数 - 返回类型应为 void 、Task 或 ValueTask - 它不应为 async void - 它不应是特殊方法(终结器、运算符...)。 |
MSTEST0010 | 类初始化应有效分析器 | 标记为 [ClassInitialize] 的方法应遵循以下有效的布局:- 它应为 public - 它应为 static - 它不应为泛型 - 它应采用 TestContext 类型的一个参数- 返回类型应为 void 、Task 或 ValueTask - 它不应为 async void - 它不应是特殊方法(终结器、运算符...)。 |
MSTEST0011 | ClassCleanup应该是有效的分析器 | 标记为 [ClassCleanup] 的方法应遵循以下有效的布局:- 它应为 public - 它应为 static - 它不应为泛型 - 它不应采用任何参数 - 返回类型应为 void 、Task 或 ValueTask - 它不应为 async void - 它不应是特殊方法(终结器、运算符...)。 |
MSTEST0012 | AssemblyInitializeShouldBeValidAnalyzer | 标记为 [AssemblyInitialize] 的方法应遵循以下有效的布局:- 它应为 public - 它应为 static - 它不应为泛型 - 它应采用 TestContext 类型的一个参数- 返回类型应为 void 、Task 或 ValueTask - 它不应为 async void - 它不应是特殊方法(终结器、运算符...)。 |
MSTEST0013 | 程序集清理应为有效分析器 | 标记为 [AssemblyCleanup] 的方法应遵循以下有效的布局:- 它应为 public - 它应为 static - 它不应为泛型 - 它不应采用任何参数 - 返回类型应为 void 、Task 或 ValueTask - 它不应为 async void - 它不应是特殊方法(终结器、运算符...)。 |
MSTEST0014 | DataRowShouldBeValidAnalyzer |
[DataRow] 实例必须具有以下布局才能有效:- 它们只能在测试方法上设置 - 参数个数应与方法参数个数匹配 - 自变量类型应与 method 自变量类型匹配 |
MSTEST0017 | 断言参数应按正确顺序传递 | 断言参数应按正确的顺序传递 |
MSTEST0018 | DynamicDataShouldBeValidAnalyzer | 用 [DynamicData] 标记的方法还应使用 [TestMethod] (或派生属性)进行标记 |
MSTEST0023 | 不要否定布尔断言分析器 | 不要否定布尔断言 |
MSTEST0024 | DoNotStoreStaticTestContextAnalyzer(避免存储静态测试上下文分析器) | 不要将 TestContext 存储在静态成员中 |
MSTEST0026 | AssertionArgsShouldAvoidConditionalAccessRuleId | 避免断言中的条件访问 |
MSTEST0030 | 包含测试方法的类型应为测试类 (TypeContainingTestMethodShouldBeATestClass) | 应将包含 [TestMethod] 的类型标记为 [TestClass] |
MSTEST0031 | DoNotUseSystemDescriptionAttribute(不使用系统描述属性) | “System.ComponentModel.DescriptionAttribute”在测试上下文中不起作用 |
MSTEST0032 | 审查始终为真断言条件分析器 | 查看或删除断言,因为其条件已知总是为真 |
MSTEST0034 | 使用类清理行为 - 结束类 | 将 ClassCleanupBehavior.EndOfClass 与 [ClassCleanup] 配合使用 |
MSTEST0035 | 使用测试方法或测试类项目的部署标题 | 在测试类或测试方法上只能指定[DeploymentItem] |
MSTEST0037 | UseProperAssertMethodsAnalyzer(正确使用断言方法分析器) | 使用正确的 Assert 方法 |
MSTEST0038 | 避免使用值类型的AssertAreSame分析器 | 不要对以下值类型使用 Assert.AreSame 或 Assert.AreNotSame |
MSTEST0039 | 使用更新版本的断言抛出分析器 | 使用较新的“Assert.Throws”方法 |
MSTEST0040 | AvoidUsingAssertsInAsyncVoidContextAnalyzer | 不要在“async void”上下文中断言 |
MSTEST0041 | UseConditionBaseWithTestClassAnalyzer | 在测试类上使用“ConditionBaseAttribute” |
MSTEST0042 | 重复数据行分析器 | 避免重复的“DataRow”条目 |
MSTEST0043 | 使用重试与测试方法分析器 | 在测试方法上使用重试属性 |