VS2022升级后运行C++单元测试遇TestType注册冲突错误
解决VS2022升级后Google Test Adaptor在Azure Pipeline中TestType注册冲突问题
升级Google Test Adaptor到最新版本
你当前用的v1.17.0.32版本适配的是旧版VS,和VS2022的测试平台存在兼容性差异。试试更新到适配VS2022的最新版本(比如v2.x系列),该版本专门针对VS2022做了适配,能直接解决这类类型注册冲突问题。清理Azure Pipeline代理上的旧测试缓存
代理机器可能残留了VS2019时期的测试平台组件或适配器缓存,导致类型注册冲突。在VSTest@2任务前加个脚本任务,清理以下目录:%USERPROFILE%\.nuget\packages\microsoft.testplatform.*%ProgramFiles(x86)%\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\TestPlatform
或者直接执行vstest.console.exe /ResetSettings命令重置测试平台设置。
强制指定测试平台版本
在VSTest@2任务中,通过testPlatformVersion参数指定与VS2022匹配的测试平台版本(比如17.x系列),避免任务自动选择旧版本组件:- task: VSTest@2 inputs: testSelector: 'testAssemblies' testAssemblyVer2: '**\*test*.dll' searchFolder: '$(System.DefaultWorkingDirectory)' testPlatformVersion: '17.0'替换为官方Google Test扩展
微软官方推出了适配VS2022的Google Test扩展,替换旧的Google Test Adaptor。这个扩展和VS2022测试平台深度兼容,不会出现这类注册冲突问题。卸载旧适配器,安装官方扩展后重新配置Pipeline任务即可。检查测试项目依赖配置
确保测试项目没有同时引用新旧版本的测试平台NuGet包,比如Microsoft.TestPlatform.ObjectModel、Microsoft.NET.Test.Sdk等,统一使用VS2022对应的17.x版本,避免依赖冲突引发类型注册异常。
内容的提问来源于stack exchange,提问作者Kamran Bigdely
相关产品推荐
相关产品推荐

