如何配置VS2022使MSTest单元测试断言失败时调试自动中断
调试MSTest时断言失败自动中断的配置方法
以下方案在你当前的VS 2022 17.2.4 + MSTest 2.2.10环境下可直接生效,不需要更换框架即可实现需求。
优先方案:配置Visual Studio调试器异常规则
这个方案不需要修改任何测试代码或测试项目配置,1分钟就能配置完成:
- 按快捷键
Ctrl+Alt+E直接调出「异常设置」面板,也可以通过顶部菜单栏「调试」→「窗口」→「异常设置」打开 - 在面板的异常列表中展开「公共语言运行时异常」节点,找到
Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException - 勾选该异常前方的复选框,确保触发规则为引发时即中断,不要选择「仅用户未处理时中断」
- 取消勾选面板顶部「仅显示已启用的异常」「仅显示我的代码中的异常」两个筛选选项,避免异常被过滤
- 配置完成后以调试模式启动单元测试,任意
Assert方法校验失败时,调试器会直接停在断言失败的代码行,可以直接查看当时的变量、调用栈状态。
兼容方案:MSTest运行参数配置
如果上述配置因为版本兼容问题不生效,可以通过runsettings文件开启MSTest原生的断言失败中断开关:
- 在测试项目根目录新建扩展名为
.runsettings的配置文件,写入如下MSTest配置段:
<?xml version="1.0" encoding="utf-8"?> <RunSettings> <MSTest> <DebugBreakOnFailedAssert>True</DebugBreakOnFailedAssert> </MSTest> </RunSettings>
- 点击顶部菜单栏「测试」→「配置运行设置」→「选择解决方案范围的运行设置文件」,选中刚才新建的
.runsettings文件 - 该配置仅在调试模式运行测试时生效,正常非调试执行测试不会触发中断,不影响批量跑测的效率。
替代框架选项
如果后续考虑更换测试框架,xUnit、NUnit都对VS 2022调试场景有完整适配:
- 两个框架的断言失败抛出的异常都可以通过异常设置面板配置为引发即中断,不需要额外安装插件
- 适配VS原生测试资源管理器的所有功能,包括调试、筛选测试、查看覆盖率等,操作逻辑和MSTest完全一致。
内容的提问来源于stack exchange,提问作者d ei
相关产品推荐
相关产品推荐

