rails-rspec错误无法加载此类文件 - rspec/core/formatters/progress_formatter

Saw*_*ant 30 rspec-rails ruby-on-rails-4

我打破了我的rails-rspec.我切换到另一个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)
Run Code Online (Sandbox Code Playgroud)

运行rails生成rspec:install返回:

Could not find generator 'rspec:install'. Maybe you meant 'devise:install' or ...
Run Code Online (Sandbox Code Playgroud)

我尝试卸载并重新安装,但错误仍然存​​在.

运行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
Run Code Online (Sandbox Code Playgroud)

看来红宝石找不到rspec-core.我试过这篇文章的解决方法但没有成功.提前感谢您提供的任何见解.

运行

rails 4.2.0,ruby 2.3.0

laf*_*ber 66

跑步bundle exec rspec为我解决了.

  • 如果你有`rspec`的多个版本(可能是不同版本的Rails的不同应用程序),`bundle exec`确保你使用你的Gemfile中定义的那个.如果没有它运行`rails`或`rake`,系统可能会尝试运行不同的版本. (10认同)
  • 要在上面展开,请执行bundle exec rspec spec / <path_to_file> /file_spec.rb。换句话说,使用“ bundle exec”前缀运行实际测试。 (2认同)
  • 它仍然没有解释为什么它有效。我只有一个版本的“rspec”。`>gem list --local rspec`: `rspec-core (3.8.0)`。与我使用“rspec -v”时的版本相同。那么为什么“bundle exec”会产生任何影响呢? (2认同)

小智 21

跑步bundle clean --force对我来说是成功的窍门,结果我的系统中有一些过时的宝石

  • 也为我工作过。这应该被标记为正确答案。 (2认同)

Jer*_*itz 5

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

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

然后运行gem uninstall ______每个版本(删除每个版本的所有版本)。

然后再跑bundle。这会将您的版本与 gemfile 中的版本同步。