2011-07-27 3 views
5

J'essaie de passer quelques variables à travers la ligne de commande pour utiliser rspec.Comment passer des arguments de la ligne de commande à rake puis rspec

D'après ce que je crois que je peux le faire passer args dans ma tâche Rake:

task :my_task, :arg1, :arg2 do |t, args| 
    puts "Args were: #{args}" 
end 

mais j'utilise rspec donc ma tâche Rake ressemble à ceci:

RSpec::Core::RakeTask.new(:my_task), :arg1, :arg2 do |t, args| 
puts args.arg1 
puts args.arg2 
end 

qui doesn ne fonctionne pas.

aussi Je nai compris comment passer à mon fichier de spécification rspec

+0

Je ne connais pas rspec, mais votre exemple de code ressemble à une petite faute de frappe. Les parenthèses dans RSpec :: Core :: RakeTask.new devraient inclure les arguments: RSpec :: Core :: RakeTask.new (: mon_task,: arg1,: arg2) – knut

Répondre

0

Comment appelez-vous râteau?

Pour votre exemple, vous devez appeler:

rake mytask[val1,val2] 

Je ne suis pas sûr de votre 2ème exemple de code. args doit être un hachage avec les clés: arg1 et: arg2. Vous pouvez utiliser

puts args[:arg1] 

Je suis dans le doute si args.arg1 fonctionnera.

0

Cela fait un moment que la question d'origine, mais j'ai dû résoudre un problème similaire. Vous ne devez pas changer beaucoup de votre idée initiale:

RSpec::Core::RakeTask.new(:my_task, [:arg1, :arg2]) do |t, args| 
puts args.arg1 
puts args.arg2 
end 

Ensuite, par exemple appeler via:

rake my_task["hello","world"] 
Questions connexes