升级至Rails 5.1.5后运行RSpec遇Bundler::GemNotFound报错求助
解决RSpec运行时找不到activesupport-5.1.5的问题
这种情况我之前也碰到过好几次——明明Gemfile.lock里清清楚楚列着activesupport-5.1.5,跑RSpec却还是报找不到的错误,大概率是bundler缓存、本地gem安装不完整或者环境版本不匹配的问题,试试下面这些步骤:
强制重新安装所有gem:直接让bundler重新安装Gemfile.lock里指定的所有版本,覆盖本地可能有问题的副本
bundle install --force清理bundler缓存后重装:有时候缓存的旧gem会干扰,先清掉再装
bundle clean --force bundle install检查Ruby环境和gemset:如果你用rbenv、rvm这类版本管理工具,先确认当前环境是不是项目指定的版本
- 用rbenv的话,查看当前Ruby版本:
rbenv version - 用rvm的话,查看当前gemset:
rvm gemset list
切换错环境的话,就算全局装了对应gem,当前项目环境里也找不到。
- 用rbenv的话,查看当前Ruby版本:
手动安装activesupport指定版本:直接绕开bundler先把这个gem装上,再验证
gem install activesupport -v 5.1.5 bundle checkbundle check会帮你确认所有Gemfile里的gem都已经正确安装在本地。用bundle exec执行RSpec:千万别直接跑
rspec,一定要加bundle exec,这样才能确保用的是项目bundle里指定的gem版本,而不是系统全局的bundle exec rspec
如果以上都没用,最后可以试试删除Gemfile.lock,然后重新bundle install——不过这会更新所有未指定版本的gem,要是项目依赖比较严格的话,记得先备份一下原文件。
内容的提问来源于stack exchange,提问作者Rick
相关产品推荐
相关产品推荐

