SuperAPI AI 工具集

migrate-vstest-to-mtp

测试与质量

查看项目

更新于 10-16 00:05

技能介绍

用途:在 .NET 测试或 CI 从 VSTest 切换到 Microsoft.Testing.Platform(MTP)时,按仓库实际情况完成迁移,使测试项目运行在 MTP、dotnet test 正常工作、CI/CD 流水线同步更新。

主要能力:

  • 先检查项目、Directory.Build.props、global.json 和 CI 文件,确认 SDK 模式:.NET 9 及更早使用兼容属性加 -- 分隔符;.NET 10 原生 MTP 通过 global.json 配置,去掉该属性并直接传 MTP 参数。
  • 在 Directory.Build.props 集中设置 MTP 属性,按命名约定(如 MSBuildProjectName)定位测试项目,避免使用尚不可用的 IsTestProject。
  • 按框架启用 runner:MSTest 用 EnableMSTestRunner 或 MSTest.Sdk;NUnit 用 NUnit3TestAdapter 5.0.0+ 与 EnableNUnitRunner;xUnit v2 用 YTest.MTP.XUnit2;xUnit v3 用 UseMicrosoftTestingPlatformRunner。
  • 翻译 dotnet test 参数:如 --blame-crash 对应 --crashdump、-l trx 对应 --report-trx、--collect 覆盖对应 --coverage,并提示所需扩展包。
  • xUnit v3 过滤器迁移到 --filter-class/--filter-method/--filter-trait 或 --filter-query。
  • 更新 Azure DevOps 与 GitHub Actions:VSTest@3 换为 DotNetCoreCLI@2,并同步参数。

使用方式:提供项目或解决方案路径、测试框架、SDK 版本、CI 文件即可;路径通常可自动发现。实施时先跑 dotnet test 建立基线,再改配置并验证。

限制:不要在同一解决方案混用 VSTest 与 MTP 测试项目;不适用于已运行在 MTP 且无差异的情况、测试框架互迁、UWP/打包 WinUI 测试项目、混合 .NET 与非 .NET 适配器,以及 MSTest 版本升级。具体版本与价格等资料暂未提供。