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 被标记为 public 的类中的 [TestClass] 方法应该是一个测试方法(标记为 [TestMethod])。 该规则忽略使用 [TestInitialize][TestCleanup] 属性标记的方法。
MSTEST0036 DoNotUseShadowingAnalyzer 隐藏测试成员可能会导致测试问题(例如 NRE)。