ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

dotnet/skills一键升级MSTest:v1/v2到v3迁移完全指南

dotnet/skills一键升级MSTest:v1/v2到v3迁移完全指南 dotnet/skills一键升级MSTestv1/v2到v3迁移完全指南【免费下载链接】skillsRepository for skills to assist AI coding agents with .NET and C#项目地址: https://gitcode.com/GitHub_Trending/skills17/skills还在手动排查 MSTest 升级后的编译错误吗开源项目dotnet/skills是 .NET 团队为 AI 编码助手Coding Agent整理的官方技能库其中dotnet-test-migration插件可以一键引导完成 MSTest v1/v2 到 v3 的测试框架迁移——自动识别版本、处理破坏性变更、替换.testsettings配置文件最后跑通全部测试。本文面向新手带你完整走一遍升级路线 插件是什么dotnet-test-migration 概览该插件位于 plugins/dotnet-test-migration/包含 5 个迁移技能和 1 个编排 Agent组件作用migrate-mstest-v1v2-to-v3本文主角MSTest v1/v2 升级到 v3migrate-mstest-v3-to-v4后续升级到 v4migrate-xunit-to-mstestxUnit 项目转换为 MSTestmigrate-vstest-to-mtp测试运行器迁移到 MTPtest-migration Agent自动检测框架/版本并路由到正确技能详细说明见 plugins/dotnet-test-migration/README.md。快速安装一键添加 dotnet/skills 插件在 Copilot CLI 或 Claude Code 中执行/plugin marketplace add dotnet/skills /plugin install dotnet-test-migrationdotnet-agent-skills也可以克隆仓库到本地参考git clone https://gitcode.com/GitHub_Trending/skills17/skills安装后重启用/skills查看可用技能列表 ✅先做判断如何识别你的项目是 MSTest v1 还是 v2升级前第一步永远是确认当前版本。AI 助手会自动读取项目文件完成检测你也可以自查判断依据版本迁移路径项目引用Microsoft.VisualStudio.QualityTools.UnitTestFramework.dllMSTest v1程序集引用先删引用再加 v3 包MSTest.TestFramework/MSTest.TestAdapter为1.x–2.xNuGet 包MSTest v2直接改包版本到 3.x⚠️ 两条路径在添加 v3 包这一步汇合之后的破坏性变更处理完全相同。检测规则详见 agents/test-migration.agent.md 中的路由表。必知的 5 大破坏性变更升级 v3 前必读MSTest v3与 v1/v2 不二进制兼容以下是最容易踩坑的变更摘自 SKILL.md 的破坏性变更清单Assert.AreEqual(object, object)重载被移除只剩泛型版本AreEqualT(T?, T?)。当两个参数无法推断出公共类型时会报CS0411/CS1503。修复方式只给编译报错的调用显式加类型参数例如Assert.AreEqualobject(expected, actual)不要把整个文件都改成object——那会丢掉 v3 新增的类型检查。DataRow 严格类型匹配这是最隐蔽的坑项目照样能编译只有MSTEST0014警告但运行时抛Test data doesnt match method parameters。把字面量改成与参数完全一致的类型即可int参数传1而不是1Lfloat参数传1.0f而不是1.0。记住必须跑测试验证绿色编译说明不了问题。.testsettings配置文件不再受支持删除旧文件、新建等价的.runsettings且所有 MSTest 配置统一放在一个MSTest元素下。注意TestTimeout每测试超时不要误写成TestSessionTimeout全会话超时。移除了部分目标框架.NET 5 需升到 net8.0LTS或 net6.0.NET Framework 低于 4.6.2 升到 net462netstandard1.0 升到 netstandard2.0。net6.0/net8.0/net9.0 均受支持不要改动已经支持的 TFM。行为类变更不报编译错误测试 ID 生成规则改变CI 按 ID 过滤/播放列表会重置、TargetInvocationException被解包、部署目录行为统一等——升级后要关注测试数量对比与 CI 历史。推荐升级路径选对包模型一次到位默认方案——MSTest 元包移除零散的MSTest.TestFramework/MSTest.TestAdapter统一引用MSTest元包如 3.8.0。若项目仍用 VSTest保留Microsoft.NET.Test.Sdk并升到兼容版本否则会报NU1605。进阶方案——MSTest.Sdk把项目 SDK 改为MSTest.Sdk/3.8.0框架、适配器、分析器自动配齐。⚠️ 它默认使用 Microsoft.Testing.PlatformMTP如果你必须留在 VSTest要显式设置UseVSTesttrue/UseVSTest不要因为升级框架就顺手切换测试运行器。中央包管理项目请改Directory.Packages.props而不是在.csproj里内联版本号。完整 7 步工作流评估→删 v1 引用→换包→改 TFM→修断言→换 runsettings→验证都在 skills/migrate-mstest-v1v2-to-v3/SKILL.md 里写好了。让 AI 替你执行一句话触发完整迁移这是本插件最爽的地方——把测试项目放进工作目录直接对 AI 助手说把这个 MSTest v2 项目升级到 v3改完编译并跑测试验证。test-migrationAgent 会自动完成检测框架与版本 → 路由到迁移技能 → 修改文件 → 构建运行 → 对比迁移前后的通过/失败数量。它内置了严格的边界闸门如果项目已经是干净的 v3它会直接告诉你迁移已完成而不乱改代码。上图是仓库内置评测基础设施对测试类技能的评估报告示例每个技能只有通过可信的基线对比才能判定为改进有效保证迁移技能的可靠性。迁移技能的行为由 tests/dotnet-test-migration/migrate-mstest-v1v2-to-v3/eval.yaml 中的 10 个真实场景验收覆盖 v1 程序集引用、CS0411 修复、DataRow 类型不匹配、.testsettings迁移、被移除的 TFM 处理以及项目已是 v3 时停止操作等边界情况。迁移完成验收清单MSTest v3 包或 MSTest.Sdk引用正确v1/v2 引用与 QualityTools 已清除项目零错误编译dotnet test全部通过且通过/失败数量与迁移前基线一致无遗留.testsettings或LegacySettings测试运行器VSTest/MTP保持升级前不变下一步从 v3 继续走向 v4迁移到 v3 只是第一站。继续升级到 MSTest v4处理Custom TestMethodAttribute、DisplayName、TestTimeout等变更请使用 skills/migrate-mstest-v3-to-v4/SKILL.mdAgent 也能编排v1 → v3 → v4的多步升级 总结用 dotnet/skills 的dotnet-test-migration插件MSTest 升级不再是背发布说明的苦差事——AI 帮你检测版本、修好断言、换掉配置文件、跑绿测试你只需要验收结果。【免费下载链接】skillsRepository for skills to assist AI coding agents with .NET and C#项目地址: https://gitcode.com/GitHub_Trending/skills17/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表