如何在RubyMine 2017.2.3中运行带标签的RSpec测试?
解决RubyMine 2017.2.3中运行带标签的RSpec测试问题
我之前在旧版RubyMine里也碰到过类似的RSpec标签运行问题,结合你的场景,给你几个针对性的解决步骤:
1. 检查RSpec配置的标签参数是否正确
打开Run -> Edit Configurations,找到你的RSpec运行配置(没有的话就点左上角+新建一个RSpec配置):
- 在Configuration标签页里,找到「Filter by tags」输入框(如果你的版本没有这个专门的框,直接用「Additional arguments」)
- 注意这里不需要加冒号,直接输入
mytag就行,和命令行的-t mytag对应;如果是要排除标签就写~mytag - 同时确认「Working directory」是你的项目根目录,「Ruby interpreter」选的是项目对应的bundle环境(比如rbenv/rvm的当前Ruby版本,且已加载bundle依赖)
2. 直接复用命令行参数
如果专门的标签输入框不生效,干脆直接把命令行的参数复制到配置里:
- 在「Additional arguments」输入框里填入
-fd -t mytag(和你命令行运行的参数完全一致) - 保存配置后再运行,RubyMine会把这些参数直接传给RSpec命令,和你终端里跑的效果完全一样
3. 处理Spring缓存的干扰
如果你的项目用了Spring来加速测试,它可能会缓存旧的配置,导致新的标签参数不生效:
- 先在RubyMine的Terminal里执行
bundle exec spring stop停止Spring - 或者在运行配置的「Before launch」里添加一个「Run External tool」,设置执行
bundle exec spring stop,让RubyMine每次运行测试前先清空Spring缓存
4. 验证RSpec版本一致性
有时候RubyMine用的RSpec版本和你bundle里的版本不一致,会导致标签解析异常:
- 打开
Preferences -> Languages & Frameworks -> Ruby SDK and Gems - 选中项目的SDK,查看已安装的rspec系列gem版本,和终端里
bundle show rspec-core输出的版本对比 - 如果不一致,重新安装对应版本的rspec,或者在RubyMine里勾选「Use bundler」确保使用项目的bundle环境
5. 清理RubyMine缓存
实在不行的话,试试清理IDE缓存:
- 点击
File -> Invalidate Caches / Restart...,选择「Invalidate and Restart」 - 重启后再重新配置运行项,很多奇怪的配置问题都能通过这个解决
按照上面的步骤一步步排查,应该能解决你在RubyMine 2017.2.3里运行带标签RSpec测试的问题。
内容的提问来源于stack exchange,提问作者RIMACH1
相关产品推荐
相关产品推荐

