2015-04-19 13 views
6

Tôi đang sử dụng travisCI để triển khai cho heroku và tôi nhận được lỗi này. Nó chỉ mới bắt đầu xảy ra.Heroku không thể phát hiện các tác vụ rake (LoadError: không thể tải tập tin như vậy - rspec/core/rake_task)

tôi có đường ray cơ bản Rakefile và tôi có một tập tin mà trông như thế này nếu không travis không thể phát hiện các nhiệm vụ rake:

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

Tại sao lỗi này được hiển thị đặc biệt cho Heroku?

EDIT - Tôi đã có một phiên bản tương tự như (tốt hơn) câu trả lời đưa ra:

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 
+0

Chỉ rspec trong gói của bạn để phát triển/sản xuất? –

+0

@FrederickCheung nó chỉ nằm trong nhóm phát triển. Đây có phải là vấn đề không? – Koxzi

Trả lời

8

Nếu rspec không nằm trong nhóm sản xuất (nó thường là không) thì mã bạn được đăng sẽ thất bại khi chạy trong môi trường sản xuất như heroku.

Trong rspec docs họ khuyên bạn nên làm điều này:

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

Vì vậy mà sự vắng mặt của rspec không ngừng bốc rakefile của bạn.

+0

Ồ đúng. Tôi đã có một phiên bản hơi phức tạp hơn nhưng nhận xét. Tôi đã thêm nó vào bài đăng để tham khảo. – Koxzi

Các vấn đề liên quan