ruby-on-rails - Heroku 无法检测到 rake 任务(LoadError : cannot load such file -- rspec/core/rake_task)

标签 ruby-on-rails ruby heroku

我正在使用 travisCI 部署到 heroku,但出现此错误。这才刚刚开始。

我有基本的 rails Rakefile,我有一个看起来像这样的文件,否则 travis 无法检测到 rake 任务:

# lib\tasks\spec.rake
require 'rspec/core/rake_task'
RSpec::Core::RakeTask.new
task :default => :spec

为什么会专门为 heroku 显示此错误?

编辑 - 我有一个与给出的(更好的)答案相似的版本:

begin
  require 'rspec/core/rake_task'
  desc "Run all examples"
  RSpec::Core::RakeTask.new(:spec) do |t|
    t.rspec_opts = %w[--color]
    t.pattern = 'spec/*_spec.rb'
  end
 rescue LoadError
end

最佳答案

如果 rspec 不在生产组中(通常不在),那么您发布的代码在像 heroku 这样的生产环境中运行时会失败。

在 rspec docs他们建议这样做:

begin
  require 'rspec/core/rake_task'
  RSpec::Core::RakeTask.new(:spec)
rescue LoadError
end

这样 rspec 的缺失不会阻止你的 rakefile 加载。

关于ruby-on-rails - Heroku 无法检测到 rake 任务(LoadError : cannot load such file -- rspec/core/rake_task),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29732542/

相关文章:

ruby-on-rails - Rails 关联访问

ruby-on-rails - 如何将大的 rspec 文件分成更小的部分

json - 由于 json 大小,http 请求失败 - 响应 503 和 Heroku 错误 H13

heroku - 构建我个人的 "heroku"或 "fluxflex"之类的?

ruby-on-rails - rails 6 : How can I run validations on an ActiveStorage item outside of the model?

ruby-on-rails - has_many 条件或 proc 外键

ruby-on-rails - 字符串 "Test ' < 3'"在我的 Rails 应用程序中显示为 "Test ' <3>"

django - Redis 在内存已满之前驱逐键

javascript - rspec 单击一个跨度

css - 将 Rails 应用程序升级到 bootstrap3