Ruby on Rails:debuggingrake任务
当我编写debugger
它不会启动:
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
如果我运行rake my:task --debugger
,它会立即返回到控制台。 如何debuggingrake任务?
Andrey Kouznetsov的答案对我来说并不适用于Ruby 1.9.3。 ruby-debug gem似乎不支持Ruby 1.9。 我不得不使用debugging器gem: https : //github.com/cldwalker/debugger 。
- 将
gem 'debugger'
添加到我的Gemfile开发组中。 - 运行
bundle
。 - 添加
require 'debugger'
到我的rake任务的顶部。 - 在
debugger
中添加一个调用,在我的rake任务中需要一个断点。 - 通常从命令行运行rake任务,例如:
rake my:task
。
我find了解决scheme。
$ gem install ruby-debug $ ruby-debug rake my:task
或在某些系统上
$ rdebug rake my:task
我强烈build议撬这个
bundle install pry require 'pry' rake ...
在你的耙子任务文件中:
binding.pry
这种方法对我不起作用。 我只是在我的代码中添加了这个:
require 'ruby-debug' # ... code ... debugger
ByeBug是2.0+的另一个
Visual Studio Code具有相当不错的debugging器,内置。 如果有人发现这种search方式使它与耙子一起工作,这里有一个工作的configuration:
{ "name": "Debug a rake task", "type": "Ruby", "request": "launch", "useBundler": true, "cwd": "${workspaceRoot}", "program": "/usr/local/bin/rake", "args": ["all"] }
这将全部运行rake任务。 你可能不得不改变耙路,我没有find方法来运行PATH中的一个。