用途:帮助用户使用 MSTest 3.x/4.x 的现行 API 与最佳实践编写有效的现代单元测试,或修复、现代化现有 MSTest 测试。适用于编写新 MSTest 测试、改进现有测试、询问断言 API、数据驱动模式、测试生命周期、修复具体测试缺陷或失败断言等场景。不适用于测试质量审查与反模式检测、运行测试、从 MSTest v1/v2 迁移到 v3 或 v3 迁移到 v4、CI/CD 配置以及 xUnit/NUnit/TUnit。
主要能力与用法:先判断项目配置,若使用 MSTest.Sdk 或 MSTest 元包即为现代配置;新项目推荐 MSTest.Sdk 或元包。测试类遵循 sealed、[TestClass]/[TestMethod]、AAA、MethodName_Scenario_ExpectedBehavior 命名,测试项目命名为 [ProjectName].Tests。断言优先选最具体 API,例如用 Assert.IsEmpty/IsNotEmpty/HasCount/Contains/DoesNotContain 替代 Assert.IsTrue,用 Assert.IsNotNull/IsNull、Assert.AreSame 表达引用相等,异常用 Assert.ThrowsExactly<T> 或 Assert.ThrowsExactlyAsync<T> 而非 [ExpectedException],并支持字符串、类型、比较断言。数据驱动可用 DataRow 内联值,DynamicData 推荐 ValueTuple 返回类型(MSTest 3.7+),需要元数据时用 TestDataRow<T>。生命周期上同步初始化放构造函数以支持 readonly 与可空分析,[TestInitialize] 仅用于异步初始化,[TestCleanup] 用于必须执行的清理,TestContext 可经构造函数注入(3.6+)。配合 [Timeout] 时使用 TestContext.CancellationToken。高级特性包括 [Retry](3.9+,仅用于确实不稳定的外部依赖)、[OSCondition]/[CICondition](3.10+)以及程序集级 Parallelize 与类级 DoNotParallelize。
限制:具体版本可用特性取决于项目所用 MSTest 版本;资料未提供安装命令、价格与平台信息。该技能只用于编写与修复测试,不负责运行测试、质量审计或迁移。