用途:将 .NET 测试代码从 NUnit 3 或 4 转换为 MSTest v4,不改变目标框架与测试平台。仅当项目包含 NUnit 包或源码且用户希望改用 MSTest 时使用;若项目已是 MSTest 且无 NUnit 测试,则不迁移。也不得把框架迁移与目标框架升级或 VSTest/MTP 迁移合并进行。
主要能力:识别 NUnit 版本与 VSTest/MTP 平台,替换 NUnit 包为 MSTest 稳定版(示例写法 <PackageReference Include="MSTest" Version="4.4.0" />),执行属性与断言的机械映射,并处理高风险语义:默认夹具生命周期、OneTimeSetUp 转静态方法、异常断言的精确/派生类型区分、序列相等、并行化范围、重试次数差异、STA/超时与 culture 等。
使用方式:先批量读取测试项目、中央包文件、global.json、.runsettings 等建立基线,检测 NUnit 并记录目标框架;不支持的框架应停止并另行提议升级或改回 MSTest v3。随后替换包、转换源码、按映射表逐项处理,最后用相同平台与筛选运行 dotnet test 并与基线比对数量。
限制:MSTest v4 要求测试应用使用 .NET 8+ 或 .NET Framework 4.6.2+。部分构造没有行为完全等价的机械映射,如 [Explicit]、[Repeat]、参数化夹具、Assert.Multiple,需重写或标注人工跟进,不能静默近似。资料未提供收费、价格或具体效果保证。