Rspec rake任务gem不再导入

时间:2014-11-25 21:17:58

标签: ruby rspec rake

把头发拉出来。我使用rspec的rake任务通过rake运行一些rspec规范。它一直工作正常,直到我开始收到此错误消息:

rake aborted!  
LoadError: cannot load such file -- rspec/core/rake_task

以下是gem list | grep rspec

的结果
rspec (3.1.0)
rspec-core (3.1.7)
rspec-expectations (3.1.2)
rspec-mocks (3.1.3)
rspec-support (3.1.2)

这是我用来在我的Rakefile中包含rake任务的行

require 'rspec/core/rake_task'

我卸载了所有rspec宝石并重新安装。同样的错误。正如我所提到的,我已经运行了几个月的测试而没有问题。没有对环境进行任何更改,它在VM中运行,因此我可以确保它不是同事。我错过了什么?

修改

我仔细检查了我的Gemfile.lock文件,所有的gem版本都与上游repo中的版本相匹配。

1 个答案:

答案 0 :(得分:1)

首先,我建议通过rspec命令运行您的规范。它比通过rake运行规范更灵活,并且开销更少。通过rake运行规范仍然可以作为构建管道的一部分(rake擅长的东西)。

您没有提供足够的信息来明确回答您的问题,但我可以提供一些建议:

  • 您是否正在通过rake投放bundle exec rake? Bundler用于在安装宝石后在运行时管理加载路径,并应确保已安装的rspec-core/lib位于加载路径上。
  • 您可以将puts $LOAD_PATH.join("\n")添加到Rakefile的顶部,以查看加载路径是什么。列表中的rspec-core位于何处? (我怀疑它不是)。如果不是,则除非require 'rspec/core/rake_task'作为系统gem安装,否则rspec-core将不起作用。使用gem which rspec-core查看是否以这种方式安装。