【问题标题】:Rake Aborted! Gem::LoadError: Could not find rspec 'x' but did find 'y'雷克中止! Gem::LoadError: 找不到 rspec 'x' 但确实找到了 'y'
【发布时间】:2014-09-26 06:31:21
【问题描述】:

我正在完成测试第一个 ruby​​ 教程 (https://github.com/alexch/learn_ruby/blob/master/index.html),但我在运行我的 rake 测试时遇到了问题。这是我收到的错误消息:

“耙子中止! Gem::LoadError: 找不到 'rspec' (~> 2) - 确实找到了: [rspec-3.0.0]"

我假设这需要一个以前版本的 rspec,而不是我安装的版本,所以我卸载并重新安装了 3 个以前版本的 rspec,但后来我遇到 gem not found 错误。我还在另一台计算机上成功完成了这些教程的一部分,但我似乎无法弄清楚这台 Windows 7 机器的正确设置。我尝试了很多不同的命令和更新都无济于事。我查看了此处提出的类似问题,但没有一个解决方案对我有用。

以下是gem list的输出:

*** LOCAL GEMS ***

actionmailer (3.2.18)
actionpack (4.1.1, 3.2.18)
actionview (4.1.1)
activemodel (3.2.18)
activerecord (3.2.18)
activerecord-sqlserver-adapter (3.2.12)
activeresource (3.2.18)
activesupport (4.1.1, 3.2.18)
arel (3.0.3)
bigdecimal (1.1.0)
builder (3.2.2, 3.0.4)
bundler (1.6.5, 1.6.2)
coffee-rails (4.0.1)
coffee-script (2.2.0)
coffee-script-source (1.7.0)
diff-lcs (1.2.5)
erubis (2.7.0)
execjs (2.0.2)
hike (1.2.3)
i18n (0.6.9)
io-console (0.3)
journey (1.0.4)
jquery-rails (3.1.0)
json (1.8.1, 1.5.5)
mail (2.5.4)
mime-types (1.25.1)
minitest (5.3.3, 2.5.1)
multi_json (1.10.0)
pg (0.17.1 x86-mingw32)
polyglot (0.3.4)
rack (1.5.2, 1.4.5)
rack-cache (1.2)
rack-ssl (1.3.4)
rack-test (0.6.2)
rails (3.2.18)
railties (4.1.1, 3.2.18)
rake (10.3.2, 10.3.1, 0.9.2.2)
rb-readline (0.5.1)
rdoc (3.9.5)
rspec (3.0.0)
rspec-core (3.0.3)
rspec-expectations (3.0.3)
rspec-mocks (3.0.3)
rspec-support (3.0.3)
rubygems-update (2.4.1)
rubyzip (1.1.3)
sass (3.2.19)
sass-rails (4.0.3)
sprockets (2.11.0, 2.2.2)
sprockets-rails (2.1.3)
sqlite3 (1.3.9 x86-mingw32)
sqlite3-ruby (1.3.3)
thor (0.19.1)
thread_safe (0.3.3)
tilt (1.4.1)
tiny_tds (0.6.1 x86-mingw32)
treetop (1.4.15)
tzinfo (1.1.0, 0.3.39)

有人可以帮忙吗?

【问题讨论】:

    标签: ruby-on-rails ruby rspec rake test-first


    【解决方案1】:

    您需要将 Rakefile 而不是 Gemfile 中的 rspec 版本从 ,gem 'rspec', '~> 2.0' 更改为您要使用的任何版本。

    【讨论】:

      【解决方案2】:

      该教程有一个 Gemfile,它指定它需要 rspec ">= 2.0",这可能不包括 rspec 3。要安装所有所需 gem 的正确版本,请在 Gemfile 所在的文件夹中尝试以下命令:

      gem install bundler
      bundle
      

      编辑:实际上,我认为该教程的 Gemfile 已损坏,并且没有正确指定他们想要使用的 rspec 版本。我认为他们应该有类似 "~> 2.0" 而不是 ">= 2.0" 的东西。尝试使用gem uninstall rspec 卸载rspec,然后使用gem install rspec -v 2.14.1。您可以打开一个 github 问题,要求他们更新教程以说明与 2.x 不兼容的新 RSpec 3.x。

      【讨论】:

      • 谢谢,但我试过了,又遇到同样的错误
      • 请运行 gem list 并将其输出添加到您的问题中,以便我们查看您拥有的宝石。另外,bundle 运行时的输出是什么?它应该告诉你它安装了哪个 rspec 版本。
      • bundle 的输出:Using rake 10.3.2 Using diff-lcs 1.2.5 Using rspec-support 3.0.3 Using rspec-core 3.0.3 Using rspec-expectations 3.0.3 Using rspec-mocks 3.0.3 Using rspec 3.0.0 Using bundler 1.6.5 Your bundle is complete! Use bundle show [gemname]` 查看捆绑 gem 的安装位置。`
      • 完成,现在我收到此错误:C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-3.0.3/lib/rspec/ core/configuration.rb:1057:in load': cannot load such file -- c:/Users/DB/Documents/learn_ruby-master/B/Documents/learn_ruby-master/ 00_hello (LoadError)`
      • 嗯,这是一个不同的错误,我认为您的原始问题得到了回答。您可以在线搜索有关 LoadErrors 的信息,基本上 Ruby 找不到该文件,因此您需要确保它在那里或修复您需要它的方式。只需查看所有文件并找出 RSpec 寻找该文件的原因并修复它。此外,这看起来仍然有问题,因为 RSpec 3.0.3 在您的错误消息中,而实际上您应该使用 RSpec 2.x。就像我在回答中所说的那样卸载 RSpec 3.x。
      猜你喜欢
      • 2011-12-13
      • 1970-01-01
      • 2011-09-14
      • 2011-09-10
      • 2020-03-05
      • 1970-01-01
      • 2016-09-18
      • 2013-09-22
      • 1970-01-01
      相关资源
      最近更新 更多