从RVM切换到rbenv后无法找到旧的RSpec版本

时间:2014-08-02 12:17:45

标签: ruby-on-rails ruby rspec rspec-rails rbenv

几天前,我从RVM切换到rbenv。我现在有一个关于rails项目的rspec问题。我收到了这条消息:

You have already activated rspec-core 3.0.3, but your Gemfile requires rspec-core 2.14.8.

我试着这样做:

gem install rspec-core '2.14.8'

但后来我收到了这条错误消息:

ERROR:  Could not find a valid gem '2.14.8' (>= 0) in any repository

之后rbenv只使用RSpec 3.0.3。

因此,现在在我的Rails项目中运行测试的唯一方法是使用:

bundle exec rspec spec

有没有办法在已安装的RSpec 3.0.3旁边安装RSpec 3之前版本的RSpec,这样我只需输入以下命令就可以再次在我的Rails项目中运行测试:

rspec spec

我正在使用Rails 4.1.1。

1 个答案:

答案 0 :(得分:0)

Rails 4在bundler和spring下运行的方法是在bin目录中运行脚本。要为rspec生成这样的脚本,请安装spring-commands-rspec gem并运行bundle exec spring binstub --all。如果当前目录是rails项目的根目录,则只需键入bin/rspec

附注:RSpec默认运行spec目录,因此您无需键入spec

要保存输入bin/,请以常规方式将您的Rails项目的bin目录添加到PATH中,或使用direnv

你可能想要rspec-rails,而不仅仅是RSpec。如果是这样,既然您正在使用Rails 4.1.x,那么您需要rspec-rails 2.99,它需要rspec 2.99.x,而不是2.14.x. (记录在rspec-rails' Changelog。)