用途:为 .NET 项目提供测试框架识别与测试代码分析的参考依据,覆盖 MSTest、xUnit、NUnit、TUnit 四种框架。
主要能力: 一、测试文件识别。列出各框架的测试类与方法标记,如 MSTest 的 [TestClass]、[TestMethod]、[DataTestMethod];xUnit 无类标记、按约定识别,方法用 [Fact]、[Theory];NUnit 用 [TestFixture]、[Test]、[TestCase]、[TestCaseSource];TUnit 用 [ClassDataSource]、[Test]。 二、断言 API 对照。按相等、布尔、空值、异常、集合、字符串、类型、Inconclusive、Fail 等类别给出各框架写法;并列出第三方断言库 Shouldly、FluentAssertions/AwesomeAssertions、Verify 的风格。 三、等待模式。识别 Thread.Sleep、await Task.Delay、SpinWait.SpinUntil。 四、跳过注解。MSTest 的 [Ignore]、xUnit 的 [Fact(Skip="reason")]、NUnit 的 [Ignore("reason")]、TUnit 的 [Skip("reason")],以及 #if false / #if NEVER 条件写法。 五、异常处理惯用替代。当测试用 try/catch 验证异常时,建议改用框架原生断言,如 MSTest 的 Assert.ThrowsExactly<T>() 与 Assert.Throws<T>()、xUnit 的 Assert.Throws<T>()、NUnit 的 Assert.Throws<T>() 配合 Assert.That。 六、神秘访客坏味道。指出文件系统、数据库、网络、环境变量等外部依赖模式为可疑信号;MemoryStream、StringReader、内存数据库提供程序、自定义 DelegatingHandler 视为可接受。 七、集成测试标记。类名含 Integration、E2E、EndToEnd、Acceptance,或使用 [TestCategory("Integration")](MSTest)、[Trait("Category","Integration")](xUnit)、[Category("Integration")](NUnit),或项目名以 .IntegrationTests、.E2ETests 结尾时,应相应调整坏味道严重程度。 八、Setup/Teardown。MSTest 用 [TestInitialize]/构造函数与 [TestCleanup]/IDisposable;xUnit 用构造函数与 Dispose;NUnit 用 [SetUp]/[TearDown];类级分别用 [ClassInitialize]/[ClassCleanup]、[OneTimeSetUp]/[OneTimeTearDown]、IClassFixture<T>。
使用方式:作为规则与模式匹配的参考资料,用于检测、审查或迁移 .NET 测试代码。
限制:资料为静态参考表,未提供安装命令、命令行用法、适用版本范围与性能数据;TUnit 的断言 API 未在对照表中给出,暂未提供。