Ruby on rails 4 rails rspec error无法加载这样的文件——rspec/core/formatters/progress\u formatter

Ruby on rails 4 rails rspec error无法加载这样的文件——rspec/core/formatters/progress\u formatter,ruby-on-rails-4,rspec-rails,Ruby On Rails 4,Rspec Rails,我把栏杆弄坏了。我切换到另一个gemset来运行第三方测试。当我返回到我的2.3.0(默认)gemset时,出现了以下错误 运行rspec将获得: /.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require': cannot load such file -- rspec/core/formatters/progress_formatter (LoadError

我把栏杆弄坏了。我切换到另一个gemset来运行第三方测试。当我返回到我的2.3.0(默认)gemset时,出现了以下错误

运行rspec将获得:

/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require': cannot load such file -- rspec/core/formatters/progress_formatter (LoadError)
正在运行的rails生成rspec:install返回:

Could not find generator 'rspec:install'. Maybe you meant 'devise:install' or ...
我已尝试卸载和重新安装,但错误仍然存在

运行rspec-v返回:

- rspec-core 3.6.0
- rspec-expectations 3.6.0
- rspec-mocks 3.6.0
- rspec-rails 3.6.1
- rspec-support 3.6.0
ruby似乎找不到rspec内核。我曾尝试过从开始的变通方法,但没有成功。提前感谢您提供的任何见解

运行

rails 4.2.0、ruby 2.3.0


我想你应该试试

bundle exec rspec:install

运行
bundle exec rspec
为我解决了这个问题。

如果您从RubyMine运行规范,您可以在运行配置中指定rspec版本


运行
bundle clean--force
帮了我的忙,结果发现我的系统中有一些过时的gem

我在rails应用程序中遇到了下面的错误,这里的解决方案都不适合我

gems/rspec-core-3.8.0/lib/rspec/core/formatters.rb:210:在'require'中:无法加载这样的文件--rspec/core/formatters/progress\u formatter(LoadError)
清空gemset并重新安装did

这假设您正在应用程序的根目录下使用
rvm
.ruby gemset

$rvm gemset为空
$bundle安装

我从Victor Hazbun那里学到了这一点,他是CodeMentor和Egghead.io的专家:

运行
gem list | grep rspec
并注意列出多个版本的gem

然后对这些版本中的每一个运行
gem uninstall\uuuuuuuuuuuuuuuuuuuuuuuuuu
(删除每个版本的所有版本)


然后运行
bundle
。这将使您的版本与GEM文件中的版本同步。

我正试图对CocoaPods做出贡献,并且在执行
rspec foo_spec.rb
时遇到了相同的错误。结果证明他们根本没有使用
rpsec
。他们似乎有一个特别的试跑者:

CocoaPods使用培根作为测试跑步者。要运行所有测试,请在项目根目录中使用
bundle exec rake spec
。如果要运行特定测试,请使用
bundle exec bacon spec/[folder]/[name]\u spec.rb


要了解更多信息,请参见

如果您有多个版本的
rspec
(可能有不同版本的Rails的不同应用程序),
bundle exec
确保您使用文件中定义的应用程序。如果您运行的是
rails
rake
,则您的系统可能会尝试运行不同的版本。若要在上面展开,请使用
bundle exec rspec spec//file_spec.rb
。换言之,使用'bundle exec'前缀运行实际测试。这里的问题不是运行错误的规范,而是使用错误版本的rspecIt仍然无法解释其工作的原因。我只有一个版本的
rspec
<代码>>gem列表--本地rspec:
rspec核心(3.8.0)
。与我使用
rspec-v
时的版本相同。那么为什么
bundle exec
会有什么不同呢?如果你不想每次都输入
bundle exec rspec
,那么就这样做:运行
gem list | grep rspec
并注意列出多个版本的gem。然后对这些版本中的每一个运行
gem uninstall\uuuuuuuuuuuuuuuuuuuuuuuuuu
(删除每个版本的所有版本)。然后运行
bundle
。这将使你的版本与你的gemfile中的版本同步。这也适用于我。这应该被标记为正确答案。这对我来说很有效,但我不知道它在做什么,也不知道它为什么有效。OP(和未来的读者)-如果你知道,那将非常感谢。这简直是大错特错。不应标记为正确答案。正如上面的评论员所指出的,此解决方案失败,并出现“命令未找到”错误。语法正确的命令应该是
bundle exec rails g rspec:install
,但这仍然不能解决我的问题。没有其他人响应,但这一条对我有效,谢谢。