Rails, Spork и отладчик

Я использую spork с Guard + Rspec, но отладчик не работает должным образом:

  • Я добавил require 'spork/ext/ruby-debug' сразу после require 'spork'

  • он правильно останавливается на debugger точках останова...

  • ... но я не могу получить доступ к irb, он выплевывает: Command is available only in local mode.

Вы знаете, как обойти это?

Спасибо,


PS: конечно, я прочитал этот вопрос, но это немного устарел и не работает.

PS2: я бы не хотел использовать это.

PS3: : я также разместил это как проблему здесь.


person apneadiving    schedule 16.11.2011    source источник


Ответы (2)


Рассмотрите возможность использования pry, это намного круче. Я включаю его в свой файл spec_helper (также работает с Test::Unit) и могу выполнять binding.pry в своих тестах для по существу вглядываться в объекты. У меня отлично работает с Guard/Spork/RSpec/Cucumber/Spinach.

Pry уже давно заменил IRB в качестве REPL по умолчанию.

person Michael De Silva    schedule 16.11.2011
comment
Интересный. Что именно вы включаете и где, пожалуйста? - person apneadiving; 16.11.2011
comment
Вы используете RSpec или Test::Unit? Об этом тоже есть скринкаст. Подглядывание с помощью Rails - person Michael De Silva; 16.11.2011
comment
Спец. +1 за вашу помощь до сих пор. - person apneadiving; 16.11.2011
comment
Взгляните на мою конфигурацию: github.com/bsodmike/CoreApp/ blob/source/spec/spec_helper.rb - person Michael De Silva; 16.11.2011
comment
Затем вы можете просто выполнить binding.pry в любом тесте и увидеть, как происходит «волшебство», когда вы запускаете спецификацию =) Смотрите потрясающие броски на pry. - person Michael De Silva; 16.11.2011
comment
Просто интересно: вы сохранили для config.cache_classes значение true в файле test.rb (что привело к перезапуску spork) или вы установили для него значение false (что приводит к сбою капибары)? - person apneadiving; 16.11.2011
comment
Я не помню, чтобы касался этой опции. Еще немного информации о config.cache_classes - person Michael De Silva; 16.11.2011
comment
Ваше решение не работает в моем приложении, дойдя до строки binding.pry, я вижу некрасивые строки с lib/pry/pry_instance.rb:414:in 'readline' TypeError: wrong argument type DRb::DRbObject (expected File). Но это работает в вашем приложении. Поищу еще, но спасибо за помощь :) - person apneadiving; 17.11.2011
comment
Действительно, я понял, что проблема может заключаться в использовании ree, а не 1.9.2: даже ваше приложение в этом случае не работает. - person apneadiving; 17.11.2011
comment
@apneadiving, не могли бы вы сообщить о проблеме на github.com/pry/pry/issues с инструкциями? о том, как размножаться? Благодарность! - person horseyguy; 17.11.2011
comment
apneadiving, как вы поняли, я тестировал это «тестовое» приложение только на 1.9.2; согласно @banister, это похоже на проблему с открытием/подглядыванием. У меня не было проблем с pry от Rails 3.0.8 до 3.1.1. - person Michael De Silva; 17.11.2011
comment
@banister, сделано здесь: github.com/pry/pry/issues/345. Спасибо, что заметили :) - person apneadiving; 17.11.2011
comment
Команда pry довольно крутая — вы также можете найти их в #pry на irc.freenode.net =) - person Michael De Silva; 17.11.2011

Отчет об ошибке OP ведет здесь, который рекомендует отключить интерактивный режим, запустив охрану следующим образом:

bundle exec guard -i

Это сработало для меня.

person fakeleft    schedule 12.12.2012