2015-09-03 35 views
5

Bunun bir Rake ile dosyayı bir kez okumak ve geri sarmamakla ilgili olduğunu tahmin ediyorum. Ama emin değilim. Herhangi bir fikir?RSpec'te Rake görevleri birden çok kez çalıştırılıyor nil döndürüyor?

require 'rake' 
require 'rails_helper' 

describe 'MyRakeTask' do 

    before(:all) do 
    Rails.application.load_tasks 
    end 

    it 'does something sweet' do 
    Rake::Task["namespace:my_task"].invoke # runs task 
    end 

    it 'but it doesnt do it again' do 
    Rake::Task["namespace:my_task"].invoke # returns nil 
    end 

end 

cevap

10

Rake dokümanlar "gerekli" eğer invoke sadece görevi çalıştırmak söylüyorlar. Aşağıdaki başka SO answer çekildiğini ve netleştirmek yardımcı olabilir:

  • Rake :: Görev her zaman görevi yürütür yürütmek [ "inşa"], ama onun bağımlılıkları yürütmüyor

  • .

    Rake :: Görev. [ "inşa"] bağımlılıkları yürütür çağırmak, ancak yalnızca zaten

  • Rake müracaat edilmemiştir eğer görevi yürütür :: Tas k ["build"]. yeniden etkinleştirilebilir, önce görevin zaten_evlenmiş halini sıfırlar, böylece görevin tekrar tekrar çalıştırılması, bağımlılıklar ve hepsi.

+0

Teşekkür ederim! “Reenable” ne yaptı. – daino3