41 votes

Ruby on Rails : déboguer les tâches rake

Quand j'écris debugger il ne démarre pas :

NoMethodError: undefined method `run_init_script' for Debugger:Module
from /usr/local/lib/ruby/gems/1.8/gems/ruby-debug-base-0.10.3/lib/ruby-debug-base.rb:239:in `debugger'
from (irb):4

Si je cours rake my:task --debugger ,il me renvoie immédiatement à la console. Comment est-il possible de déboguer les tâches rake ?

40voto

Andrey Kouznetsov Points 4722

J'ai trouvé la solution.

$ gem install ruby-debug
$ ruby-debug rake my:task

ou sur certains systèmes

$ rdebug rake my:task

26voto

Liron Yahdav Points 1974

La réponse d'Andrey Kouznetsov n'a pas fonctionné pour moi avec Ruby 1.9.3. La gemme ruby-debug ne semble pas prendre en charge Ruby 1.9. J'ai dû utiliser la gemme debugger : https://github.com/cldwalker/debugger .

  1. Ajouter gem 'debugger' au groupe de développement de mon Gemfile.
  2. Exécuter bundle .
  3. Ajouter require 'debugger' au sommet de ma tâche de râteau.
  4. Ajouter un appel à debugger où je voulais un point d'arrêt dans ma tâche rake.
  5. Exécutez la tâche rake normalement à partir de la ligne de commande, par exemple : rake my:task .

9voto

Abram Points 3501

Je recommande vivement faire levier pour cette

bundle install pry
require 'pry'
rake ...

Dans votre tâche de ratissage fichier :

binding.pry

6voto

Sean McCleary Points 1338

Cette approche n'a pas fonctionné pour moi. J'ai juste ajouté ceci dans mon code :

require 'ruby-debug'
# ... code ...
debugger

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X