Visual Studio 2022中MsTest单元测试无法单步调试该如何解决
解决VS2022中MSTest单元测试无法单步调试的问题
针对你从VS2019升级到VS2022、同时将项目从.NET Core 3.1迁移到.NET 6.0后出现的MSTest断点无法命中、无法单步调试的问题,可尝试以下解决方案:
确认测试项目的生成配置为Debug
确保测试项目当前使用的是Debug生成配置(而非Release),Release模式下的代码优化会导致断点失效。可通过VS顶部工具栏的配置下拉框切换,或右键测试项目→属性→生成,在“配置”下拉框选择Debug,并将“调试信息”设置为“完整”。更新MSTest相关NuGet包
检查测试项目的NuGet依赖,确保MSTest.TestAdapter和MSTest.TestFramework为兼容.NET 6的最新稳定版本(建议3.0.0及以上)。旧版本适配器可能与VS2022的测试运行器不兼容,导致调试异常。排查依赖注入的影响
你的测试类使用了构造函数注入IApiManager,可先尝试替换为直接实例化具体实现类(而非依赖DI容器)进行测试,验证是否是DI代理类(如Moq动态代理)或容器初始化问题导致断点无法命中。如果替换后能正常调试,再检查DI容器的配置逻辑。清理测试运行器缓存与项目文件
- 关闭VS,删除测试项目下的
bin和obj文件夹,重新生成整个解决方案; - 打开VS后,依次点击测试→测试设置→选择测试设置文件,确保未选中异常的配置文件,或重置为默认测试设置;
- 删除
%USERPROFILE%\AppData\Local\Temp\VisualStudioTestExplorerExtensions文件夹,重启VS后重新尝试调试测试。
- 关闭VS,删除测试项目下的
手动附加调试器到测试进程
触发测试调试时,在VS中点击调试→附加到进程,找到testhost.exe(或对应架构的testhost.x86.exe)并附加,再重新运行测试,验证是否能命中断点。检查编辑并继续设置
右键测试项目→属性→调试,勾选“启用编辑并继续”选项,该设置异常可能间接影响调试流程。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

