2009-11-13 27 views
5
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)不能讓rspec,spork和調試器發揮不錯

我試過很多位置,除非我沒有正確測試它們,否則會出現一些奇怪的現象:

在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 

回答

3

我一直把它放在config/environments/test.rb和把debugger在斷點在我的應用程序代碼(而不是規範)。

+0

謝謝帕特里克。我一到工作就會嘗試一下週一早晨。 – btelles 2009-11-14 13:30:51

+0

我還沒有嘗試過spork,但是...會嘗試在週末和更新我的答案,如果它的作品。 – 2009-11-14 16:38:37

6

我使用ruby-debug運行Spork和Autospec。 Spork的更新版本有一個您可能需要的外部ruby-debug庫,它是實驗性的,因此您需要自擔風險。在我的prefork的塊我只是有:

需要「叉勺/ EXT /紅寶石調試」

這將打破在你有叉勺運行終端調試會話。有方法等來啓動遠程連接設置等等,而最近的提交已經將更新和修復應用於它們的調試功能,所以它正在積極開發中。希望它會很快被核心和測試...