2015-08-06 2 views
7

Я хотел бы иметь возможность передавать аргументы для задачи, которые я должен звонить из другой задачиInvoke рек задача с аргументами из другой задачи

Вызов без аргументов работает для меня, как это:

Rake::Task["mytask1"].invoke 

Однако с аргументами, как это он не делает:

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

Благодарности

ответ

18

Вы можете попробовать

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

или вы можете сделать

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

спасибо ваш ответ работает для меня –

+0

Примечание Вы должны вызвать '.reenable' для выполнения одной и той же задачи дважды. См. Http://stackoverflow.com/questions/22639194/invoking-the-same-rake-task-twice-in-rspec –

4

Вы можете передать параметры через 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 
Смежные вопросы