如何将xUnit测试项目从非用户代码转为用户代码以正常调试
xUnit测试项目调试断点无法命中的解决方案
针对你遇到的Debug构建仍被优化、符号未加载、断点无法命中的问题,在现有尝试基础上,试试这些VS2022专属的针对性操作:
检查测试项目的生成优化开关
右键测试项目 → 属性 → 生成 → 常规:- 确保优化代码选项未勾选(Debug模式默认关闭,但可能被误改)
- 把调试信息设置为「完整」,确保生成完整的pdb符号文件
调整VS调试器核心设置
打开工具 → 选项 → 调试 → 常规:- 取消勾选「启用仅我的代码」,避免调试器把测试代码判定为非用户代码
- 勾选「启用源服务器支持」和「启用源链接支持」,确保符号能正确加载
修正项目引用方式
- 被测试项目要用项目引用,别直接引用编译好的DLL,防止符号版本不匹配
- 如果必须用DLL引用,右键引用 → 属性,设置「复制本地」为True,且确保引用的是Debug版本的DLL
重置VS调试环境
- 关闭VS,删除解决方案根目录下的
.vs隐藏文件夹(里面存的是缓存配置) - 重新打开解决方案,依次执行「清理解决方案」→「生成解决方案」
- 关闭VS,删除解决方案根目录下的
换一种测试调试启动方式
- 打开测试资源管理器,右键单个测试方法,选择「调试选定的测试」,直接针对目标测试启动调试
- 用命令行启动测试时,执行
dotnet test --configuration Debug --no-build --verbosity normal,然后手动附加到dotnet.exe进程调试
内容的提问来源于stack exchange,提问作者DavidY
相关产品推荐
相关产品推荐

