2011-04-12 18 views
9

Raylar 3, Ruby 1.9 ve Test :: Unit ile, işlev testinde hata ayıklayıcısını çağırmanın doğru yolu nedir?Rails işlev testinde hata ayıklayıcısını nasıl çağırırım?

class AdminControllerTest < ActionController::TestCase 
    test "should get index" do 
     debugger 
     get :index 
     assert_redirected_to welcome_url 
    end 
end 

ama Ruby ayıklayıcıya çağrısına (test öncesinde gider ve normal çalışır) görmezden görünüyor: Test: fonksiyonelleri Ben "hata ayıklayıcı" ekleyerek ve ardından tırmık çalışan denedim. Testi doğrudan çalıştırmayı denerseniz, Ruby test_helper.rb dosyasını bulamıyorsa, Ruby test_helper.rb'yi bulamıyor demektir. Eğer aşağıda cevabını aşağıdaki Ben çalıştırın:

ruby -I "lib:test" test/functional/admin_controller_test.rb 

o zaman test_helper bulur ama yine ayıklayıcısını yürütmesini olmadan tamamlanması için test çalıştırır.

gem 'ruby-debug19', :require => 'ruby-debug', :group => :development 

cevap

9

Ben her zaman sadece kullanarak hata ayıklama testler mümkün oldum: Eğer yardımı olacaksa,

ruby -I"lib:test" test/functional/admin_controller_test.rb 

benim .rdebugrc dosyasında aşağıdaki var:

My Gemfile var
set autolist 
set autoeval 
set autoreload 
set forcestep 
+0

Hayır, bu benim için ayıklayıcısını başlatılması değil; Bu satırları .rdebugrc'ye ekledikten sonra bile test tamamlanmaya başlar. –

+1

Ancak, uygulamanızın hatalarını ayıklayabilirsin, testlere değil? Sizin "gem 'ruby-debug19',: require => 'ruby-debug'" sizin test grubunuzda yer alıyor mu: geliştirme? – njorden

+6

bing bing bing! Ben sadece ruby-debug19 vardı: geliştirme grubu. –

3

ruby-debug19 gem'e ihtiyacınız olacak.

+0

için zaten çalıştım; Bunu göstermek için soruyu düzenledim. –

1

Aynı problemi yaşadım ve Gemfile'ımdaki test grubuna 'debugger' ekleyerek düzeltdim.

Gemfile:

group :test do 
    gem "debugger" 
end 

Komut:

bundle exec ruby -Itest test/unit/user_test.rb -n test_the_truth 
İlgili konular