MSTest 设计规则
设计规则将帮助你创建和维护符合适当设计和良好做法的测试套件。
标识符 | 名称 | 说明 |
---|---|---|
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 | 被标记为 [TestClass] 的类中的 public 方法应该是一个测试方法(标记为 [TestMethod] )。 该规则忽略使用 [TestInitialize] 或 [TestCleanup] 属性标记的方法。 |
MSTEST0036 | DoNotUseShadowingAnalyzer | 隐藏测试成员可能会导致测试问题(例如 NRE)。 |