如何将 rspec 升级到我的 Rails 项目中的特定版本?
How do I upgrade rspec to a specific version in my Rails project?
我正在使用 Rails 4.2.10。我有以下版本的规格…
$ bin/rspec --version
/Library/Ruby/Gems/2.6.0/gems/bundler-1.17.3/lib/bundler/rubygems_integration.rb:200: warning: constant Gem::ConfigMap is deprecated
3.4.4
在我的 Gemfile 中,我有
rspec (3.4.0)
rspec-core (~> 3.4.0)
rspec-expectations (~> 3.4.0)
rspec-mocks (~> 3.4.0)
…
rspec-rails (3.4.2)
actionpack (>= 3.0, < 4.3)
activesupport (>= 3.0, < 4.3)
railties (>= 3.0, < 4.3)
rspec-core (~> 3.4.0)
rspec-expectations (~> 3.4.0)
rspec-mocks (~> 3.4.0)
rspec-support (~> 3.4.0)
rspec-support (3.4.1)
如何将规范升级到特定版本(我想要 3.10.0)。我尝试将 Gemfile.lock 版本更改为
rspec (3.10.0)
rspec-core (~> 3.4.0)
rspec-expectations (~> 3.4.0)
rspec-mocks (~> 3.4.0)
然后重新运行“bundle install”,但是查看bin/rspec的版本还是显示“3.4.4”。
编辑: 回应评论中给出的答案...
尝试将我的 Gemfile“spec-rails”依赖项更改为
gem 'rspec-rails', '~> 3.9.1'
然后是下面的 运行 但我想有一系列的依赖关系导致下面的事情
$ bundle install
…
deprecated
Fetching gem metadata from https://rubygems.org/........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies........
Bundler could not find compatible versions for gem "rspec-support":
In snapshot (Gemfile.lock):
rspec-support (= 3.4.1)
In Gemfile:
guard-rspec was resolved to 4.6.4, which depends on
rspec (>= 2.99.0, < 4.0) was resolved to 3.10.0, which depends on
rspec-mocks (~> 3.4.0) was resolved to 3.4.1, which depends on
rspec-support (~> 3.4.0)
rspec-rails (~> 3.9.1) was resolved to 3.9.1, which depends on
rspec-support (~> 3.9.0)
Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
不太确定如何进行升级。
升级所有提到的 gem,并且可能与其所需的 RSpec 版本冲突。输出告诉您,guard-rspec 与较新的 RSpec-version 发生冲突。尝试:
bundle update rspec rspec-rails guard-rspec
如果新 Gems 出现另一个错误,请尝试将它们也添加到命令中。 Gemfile 中未列出的传递依赖项通常不需要列出(rspec-mocks 等)。
总结:尝试一次升级所有相关的有问题的宝石。
此外,正如 Les 所说,您不应该手动更新 Gemfile.lock(合并冲突除外),而只能通过 bundle update [GEMNAME]
.
删除 Gemfile.lock 是最后的手段,因为您将失去当前可能运行良好的依赖情况,并立即将所有 Gem 升级到 Gemfile 中指定的最新版本。
我正在使用 Rails 4.2.10。我有以下版本的规格…
$ bin/rspec --version
/Library/Ruby/Gems/2.6.0/gems/bundler-1.17.3/lib/bundler/rubygems_integration.rb:200: warning: constant Gem::ConfigMap is deprecated
3.4.4
在我的 Gemfile 中,我有
rspec (3.4.0)
rspec-core (~> 3.4.0)
rspec-expectations (~> 3.4.0)
rspec-mocks (~> 3.4.0)
…
rspec-rails (3.4.2)
actionpack (>= 3.0, < 4.3)
activesupport (>= 3.0, < 4.3)
railties (>= 3.0, < 4.3)
rspec-core (~> 3.4.0)
rspec-expectations (~> 3.4.0)
rspec-mocks (~> 3.4.0)
rspec-support (~> 3.4.0)
rspec-support (3.4.1)
如何将规范升级到特定版本(我想要 3.10.0)。我尝试将 Gemfile.lock 版本更改为
rspec (3.10.0)
rspec-core (~> 3.4.0)
rspec-expectations (~> 3.4.0)
rspec-mocks (~> 3.4.0)
然后重新运行“bundle install”,但是查看bin/rspec的版本还是显示“3.4.4”。
编辑: 回应评论中给出的答案...
尝试将我的 Gemfile“spec-rails”依赖项更改为
gem 'rspec-rails', '~> 3.9.1'
然后是下面的 运行 但我想有一系列的依赖关系导致下面的事情
$ bundle install
…
deprecated
Fetching gem metadata from https://rubygems.org/........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies........
Bundler could not find compatible versions for gem "rspec-support":
In snapshot (Gemfile.lock):
rspec-support (= 3.4.1)
In Gemfile:
guard-rspec was resolved to 4.6.4, which depends on
rspec (>= 2.99.0, < 4.0) was resolved to 3.10.0, which depends on
rspec-mocks (~> 3.4.0) was resolved to 3.4.1, which depends on
rspec-support (~> 3.4.0)
rspec-rails (~> 3.9.1) was resolved to 3.9.1, which depends on
rspec-support (~> 3.9.0)
Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
不太确定如何进行升级。
升级所有提到的 gem,并且可能与其所需的 RSpec 版本冲突。输出告诉您,guard-rspec 与较新的 RSpec-version 发生冲突。尝试:
bundle update rspec rspec-rails guard-rspec
如果新 Gems 出现另一个错误,请尝试将它们也添加到命令中。 Gemfile 中未列出的传递依赖项通常不需要列出(rspec-mocks 等)。
总结:尝试一次升级所有相关的有问题的宝石。
此外,正如 Les 所说,您不应该手动更新 Gemfile.lock(合并冲突除外),而只能通过 bundle update [GEMNAME]
.
删除 Gemfile.lock 是最后的手段,因为您将失去当前可能运行良好的依赖情况,并立即将所有 Gem 升级到 Gemfile 中指定的最新版本。