【问题标题】:Rspec rake task gem no longer importingRspec rake 任务 gem 不再导入
【发布时间】:2015-01-24 01:17:51
【问题描述】:

在这件事上拉我的头发。我正在使用 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 gem 并重新安装。同样的错误。正如我所提到的,我已经运行这些测试几个月了,没有任何问题。环境没有任何变化,它在虚拟机中运行,所以我可以确保它不是同事。我错过了什么?

编辑

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

【问题讨论】:

    标签: ruby rspec rake


    【解决方案1】:

    首先,我建议通过rspec 命令运行您的规范。它比通过rake 运行规范要灵活得多,并且开销更少。通过rake 运行规范作为构建管道的一部分仍然很有用(rake 擅长的那种事情)。

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

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

    【讨论】:

    • bundle exec rake 有效。我觉得很奇怪它工作了这么长时间并且没有对系统/env/gems/ect 进行任何更改......它停止了工作。谢谢,我为此掉头发了。
    猜你喜欢
    • 2015-12-29
    • 2011-07-24
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多