设计规则将帮助你创建和维护符合适当设计和良好做法的测试套件。
| Identifier | Name | Description |
|---|---|---|
| MSTEST0004 | PublicTypeShouldBeTestClassAnalyzer | 在测试项目中最好只将测试类标记为公共。 |
| MSTEST0006 | AvoidExpectedExceptionAttributeAnalyzer | 首选 Assert.ThrowsExactly 或 Assert.ThrowsExactlyAsync 而非 [ExpectedException],这样可确保只有预期的调用引发预期的异常。 断言 API 还提供更大的灵活性,且允许断言异常的额外属性。 |
| MSTEST0015 | TestMethodShouldNotBeIgnored | 不应忽略测试方法(标有 [Ignore])。 |
| MSTEST0016 | TestClassShouldHaveTestMethod | 测试类应该至少有一个测试方法,或者是“静态”的,并且方法由 [AssemblyInitialization] 和/或 [AssemblyCleanup]标记。 |
| MSTEST0019 | PreferTestInitializeOverConstructorAnalyzer | 首选 TestInitialize 方法而非构造函数 |
| MSTEST0020 | PreferConstructorOverTestInitializeAnalyzer | 首选构造函数而非 TestInitialize 方法 |
| MSTEST0021 | PreferDisposeOverTestCleanupAnalyzer | 首选 Dispose 而非 TestCleanup 方法 |
| MSTEST0022 | PreferTestCleanupOverDisposeAnalyzer | 首选 TestCleanup 而非 Dispose 方法 |
| MSTEST0025 | PreferAssertFailOverAlwaysFalseConditionsAnalyzer | 使用“Assert.Fail”而不是始终失败的断言 |
| MSTEST0029 | PublicMethodShouldBeTestMethod | 被标记为 public 的类中的 [TestClass] 方法应该是一个测试方法(标记为 [TestMethod])。 该规则忽略使用 [TestInitialize] 或 [TestCleanup] 属性标记的方法。 |
| MSTEST0036 | DoNotUseShadowingAnalyzer | 隐藏测试成员可能会导致测试问题(例如 NRE)。 |
| MSTEST0044 | PreferTestMethodOverDataTestMethodAnalyzer | 方法或类型使用 DataTestMethodAttribute 或继承它。 |
| MSTEST0045 | UseCooperativeCancellationForTimeoutAnalyzer | 测试方法不使用 TimeoutAttribute 将 CooperativeCancellation 属性设置为 true. |