2015-08-06 17 views
7

vorrei essere in grado di passare gli argomenti per un compito che devo chiamare da un altro compitoInvoke task rake con argomenti da un altro compito

Invocare senza argomenti per me funziona in questo modo:

Rake::Task["mytask1"].invoke 

Tuttavia, con argomenti come questo non fa:

Rake::Task["mytask1[1,v18_0,20141230]"].invoke 

Grazie

risposta

18

si può provare

Rake::Task[:my_task].invoke(1,'v18_0',20141230) 

o si può fare

Rake.application.invoke_task("my_task[1, 'v18_0', 20141230]") 
+0

grazie la tua risposta per me funziona –

+0

Nota che devi chiamare '.reenable' per eseguire la stessa attività due volte. Vedi http://stackoverflow.com/questions/22639194/invoking-the-same-rake-task-twice-in-rspec –

4

È possibile passare parametri attraverso invoke

namespace :tester do 
    desc "test" 
    task :test, [:amount] => :environment do |task, args| 
    puts "Your amount is #{args.amount}" 
    end 

    task :test_task do 
    Rake::Task["tester:test"].invoke(100) 
    end 
end 

rake tester:test_task 
Your amount is 100 
Problemi correlati