You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 13:35:56