尝试使用rspec,但是得到了一个错误,即rspec-core 2.2.1已被激活,但是我的Gemfile需要rspec-core 2.1.0

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试使用rspec,但是得到了一个错误,即rspec-core 2.2.1已被激活,但是我的Gemfile需要rspec-core 2.1.0相关的知识,希望对你有一定的参考价值。

我更新了我的宝石。我已经创建了一个示例Rails应用程序并在我的Gemfile中有以下内容:

source 'http://rubygems.org'

gem 'rails', '3.0.3'
gem 'sqlite3-ruby', :require => 'sqlite3'

group :development do
  gem 'rspec-rails'
end

group :test do
  gem 'rspec'
  gem 'webrat', '0.7.1'
end

但是,当我运行'rspec spec /'时,我收到以下消息:

/home/jeff/.rvm/gems/ruby-1.9.2-p0/gems/bundler-1.0.7/lib/bundler/runtime.rb:27:in `block in setup': 
You have already activated rspec-core 2.2.1, but your Gemfile requires rspec-core 2.1.0. 
Consider using bundle exec. (Gem::LoadError)
答案

尝试使用bundle update rspecbundle update rspec-rails。位于根目录中的Gemfile.lock文件可能指定了每个gem的版本号。

另一答案

Sam Ritchie和Alexey的解决方案相结合,帮助了我。最后我不得不:

bundle update rspec
bundle update rspec-rails
sudo gem uninstall rspec-mocks
sudo gem uninstall rspec-expectations
sudo gem uninstall rspec-core

(如果没有输入,则提示输入版本)

正如Alexey所说,使用它来查看哪些版本太高:

gem list rspec

(会投票给你Alexey,但显然我在筹码上没有足够的“声望”。)

另一答案

我现在得到了同样的问题。尝试修复它:

sudo gem uninstall rspec-core -v 2.2.1
bundle update rspec-core

您可能需要为其他依赖宝石(如rspec,rspec-rails等)执行此操作。使用该命令查看候选人:

gem list rspec
另一答案

Rails noob在这里......我正在关注Michael Hartl的精彩教程......卡在layouts

尝试改变this post about rspec/webrat errors中提到的rspec和webrat版本无济于事。

对于rspec v2.1.0,我得到与@ user338413相同的错误。

rspec -v返回2.2.1


开发机器运行ubuntu 10.04

已解决....适用于rspec 2.2.0 + webrat 0.7.1,虽然我仍然想知道原因

另一答案

这很容易解决:

bundle exec rspec

将强制捆绑程序使用您的项目所需的gem版本,忽略系统范围的设置。

另一答案

在Gemfile.lock中将版本号从2.1.0更改为2.2.1

以上是关于尝试使用rspec,但是得到了一个错误,即rspec-core 2.2.1已被激活,但是我的Gemfile需要rspec-core 2.1.0的主要内容,如果未能解决你的问题,请参考以下文章

如何找到需要这么长时间的 rspec 测试

Proc中的RSpec模型验证测试错误

为啥我在我的 Rspec 模型测试中得到单元化常量?

期望 true 响应 true?

尝试运行 rspec 时,我得到“未初始化的常量 ActiveModel”

尝试在Rails中设置rspec测试时获取未初始化的常量Faker :: String