2015-09-03 24 views
5

Zgaduję, że to ma związek z tym, że Rake czyta plik raz i nie przewija go? Ale nie jestem pewien. Jakieś pomysły?Uruchamianie zadań Rake w RSpec wiele razy zwraca zero?

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 

Odpowiedz

10

W Rake docs powiedzieć invoke będzie działać tylko zadanie, jeśli jest „konieczne”. Poniższa został wycofany ze sobą tak answer i może przyczynić się do wyjaśnienia:

  • Rake :: Task [ „budować”] wykonać zawsze wykonuje zadanie, ale nie realizuje jego zależności

  • .

    Rake :: Task [ "budować"]. powołać wykonuje zależności, lecz jedynie wykonuje zadanie jeśli nie została już wywołana

  • Rake :: Tas k ["build"]. reenable najpierw resetuje stan już_wylony zadania, umożliwiając ponowne wykonanie zadania, zależności i wszystko.

+0

Dziękuję! "To, co się udało" to "ponowne włączenie". – daino3