【问题标题】:Trying to use rspec, but getting an error that rspec-core 2.2.1 has been activated, but my Gemfile requires rspec-core 2.1.0尝试使用 rspec,但收到 rspec-core 2.2.1 已激活的错误,但我的 Gemfile 需要 rspec-core 2.1.0
【发布时间】:2010-12-02 16:05:34
【问题描述】:

我已经更新了我的宝石。我创建了一个示例 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)

【问题讨论】:

    标签: ruby-on-rails rubygems rspec


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      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,但显然我在堆栈上没有足够的“声誉”。)

      【讨论】:

        【解决方案3】:

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

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

        您可能需要对其他依赖的 gem(如 rspec、rspec-rails 等)执行此操作。使用命令查看候选人:

        gem list rspec
        

        【讨论】:

        • 这修复了它。对我来说,问题是我已经将 rspec 作为本地 gem 安装了两次——一次没有指定版本号,一次指定了版本号。使用版本号安装的 Rspec 低于未安装版本号的 Rspec,并且它试图加载版本号高于所需版本号的 rspec-support gem。 TL;DR:删除重复的 gem - 运行 gem list rspec 以查看哪些是重复的,然后删除这些版本。
        【解决方案4】:

        Rails noob here ... 我正在关注 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,尽管我仍然想知道原因

        【讨论】:

          【解决方案5】:

          这很容易解决:

          bundle exec rspec
          

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

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              猜你喜欢
              • 2023-03-29
              • 1970-01-01
              • 2014-08-30
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多