MSTest 设计规则

设计规则将帮助你创建和维护符合适当设计和良好做法的测试套件。

标识符 名称 说明
MSTEST0004 PublicTypeShouldBeTestClassAnalyzer 在测试项目中最好只将测试类标记为公共。
MSTEST0006 AvoidExpectedExceptionAttributeAnalyzer 首选 Assert.ThrowsExactlyAssert.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 被标记为 [TestClass] 的类中的 public 方法应该是一个测试方法(标记为 [TestMethod])。 该规则忽略使用 [TestInitialize][TestCleanup] 属性标记的方法。
MSTEST0036 DoNotUseShadowingAnalyzer 隐藏测试成员可能会导致测试问题(例如 NRE)。