无法让rspec,spork和调试器发挥得很好

bte*_*les 5 ruby rspec ruby-on-rails

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. 
Run Code Online (Sandbox Code Playgroud)

然后,我应该在哪里放置"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
Run Code Online (Sandbox Code Playgroud)

ozz*_*ron 6

我用ruby-debug运行Spork和Autospec.Spork的更高版本有一个你可以要求的外部ruby-debug库,它是实验性的,所以使用风险自负.在我的prefork块我只有:

需要'spork/ext/ruby​​-debug'

它将突破到Spork运行的终端中的调试会话.有方法等启动远程连接设置等,最近的提交已经有更新和修复应用于他们的调试功能,所以它正在积极开发.希望它很快就会成为核心并经过测试......


Pat*_*hie 3

我总是将其放入config/environments/test.rb应用debugger程序代码中的断点处(而不是规范)。