ReSharper测试运行器忽略.runsettings文件,VS测试运行器正常生效
问题描述
使用ReSharper测试运行器执行MSTest测试时,.runsettings文件中的TestCaseFilter设置未生效——所有测试(包括标记为MyCategory的测试)都会被执行;但Visual Studio内置测试运行器可正常应用该过滤规则,排除MyCategory类别测试。
环境信息:
- 目标框架:.NET 8
- 测试框架:MSTest
- Visual Studio版本:17.11.4
- ReSharper版本:2024.2.5
使用的.runsettings内容:
<?xml version="1.0" encoding="utf-8"?> <RunSettings> <RunConfiguration> <TestCaseFilter>TestCategory != MyCategory</TestCaseFilter> </RunConfiguration> </RunSettings>
解决方案
1. 手动在ReSharper测试窗口配置过滤规则
ReSharper对.runsettings中TestCaseFilter的支持存在局限性,尤其是MSTest场景,可以直接在测试窗口手动配置相同的过滤逻辑:
- 打开ReSharper的Unit Tests窗口
- 点击窗口顶部的漏斗图标(过滤按钮)
- 在弹出的过滤面板中,点击Add Condition,选择
Test Category,条件设为Not equals,输入MyCategory - 点击Apply,之后运行测试就会自动排除该类别的用例
2. 确保ReSharper正确加载.runsettings文件
- 打开ReSharper选项:点击菜单栏
ReSharper > Options - 导航到
Tools > Unit Testing > Test Settings - 确认选中
Use test settings file specified in Visual Studio选项(或手动指定你的.runsettings文件) - 重启Visual Studio后重新运行测试,确保设置生效
3. 切换到ReSharper专属配置文件保存过滤规则
如果.runsettings的方式始终不生效,可以将过滤规则保存到ReSharper的.DotSettings配置文件中:
- 在测试窗口配置好过滤规则后,点击过滤面板的
Save Filter as... - 选择保存到解决方案级的
.DotSettings文件,后续打开解决方案时会自动加载该过滤配置
4. 检查版本兼容性与反馈问题
如果以上方法都无效,尝试将ReSharper更新到最新版本,新版本可能修复了.NET 8 MSTest的配置兼容问题;或者直接向JetBrains提交反馈,说明你的环境和问题细节。
内容的提问来源于stack exchange,提问作者Roy Guggenheim
相关产品推荐
相关产品推荐

