Не могу получить rspec, spork и отладчик, чтобы играть хорошо - PullRequest
5 голосов
/ 14 ноября 2009
Given I am a dumb programmer
  and I am using rspec
  and I am using spork
  and I want to debug ...mmm...let's saaay, a spec for Phone. 

Тогда где я должен поместить строку "require 'ruby-debug'", чтобы остановить обработку в определенной точке phone_spec.rb? (Все, что я прошу, - это большая жирная стрела, которую мог увидеть даже опытный программист: -3)

Я перепробовал много локаций, и если я не проверил их правильно, происходит что-то странное:

В spec_helper.rb в следующих местах:

require 'rubygems'
require 'spork'
                                            <= TRIED IT HERE
ENV["RAILS_ENV"] ||= 'test'

Spork.prefork do
  require File.dirname(__FILE__) + "/../config/environment" #unless defined?(RAILS_ROOT)
  require 'spec/autorun'
  require 'spec/rails'
  require 'machinist/active_record'
  require 'faker'
  require 'sham'
                                            <= TRIED IT HERE
end

Spork.each_run do
  require File.expand_path(File.dirname(__FILE__) + "/blueprints")

                                            <= TRIED IT HERE
end

Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}

Spec::Runner.configure do |config|
  config.use_transactional_fixtures = true
  config.use_instantiated_fixtures  = false
  config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
  config.before(:all)    { Sham.reset(:before_all)  }
  config.before(:each)   { Sham.reset(:before_each) }

                                            <= TRIED IT HERE

end

Ответы [ 2 ]

6 голосов
/ 19 января 2010

Я использую Spork и Autospec с ruby-debug. Более поздние версии Spork имеют внешнюю библиотеку ruby-debug, которая может вам потребоваться, она экспериментальная, поэтому используйте ее на свой страх и риск. В моем блоке prefork у меня просто есть:

требуется 'spork / ext / ruby-debug'

Это приведет к сеансу отладки в терминале, на котором запущен Spork. Существуют методы и т. Д., Чтобы инициировать настройку удаленного подключения и т. Д., И к недавним фиксациям были применены обновления и исправления для их функций отладки, поэтому он находится в активной разработке. Надеюсь, это будет ядро ​​и скоро будет проверено ...

3 голосов
/ 14 ноября 2009

Я всегда помещал его в config/environments/test.rb и ставил debugger в точке останова в коде моего приложения (в отличие от спецификации).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...