2013-01-05 14 views
5

Testlerim için webkit ile Capybara kullanıyorum, ancak bir sınama başarısız olduğunda, hatayı gösteriyor ancak hatanın gerçekte nerede meydana geldiğini göstermiyor.Neden RSpec/Capybara hataların meydana geldiğini göstermiyor

Failures: 

    1) online shopping - sign up 
    Failure/Error: page.should have_content 'Payment added successfully' 
     expected there to be content "Payment added successfully" in "Internal Server Error undefined method `client_id' for #<InvoicePayment:0x007fbd5b834008> WEBrick/1.3.1 (Ruby/1.9.3/2012-04-20) at 127.0.0.1:60324" 
    # ./spec/requests/online_shopping_spec.rb:140:in `block (2 levels) in <top (required)>' 

ve oluştu yer üzerinde hiçbir bilgilerle, sadece hatayı göstereceğiz save_and_open_page kullanarak:

Dahili Sunucu Hatası

tanımsız yöntem `# için 'CLIENT_ID WEBrick/1.3.1 (Ruby/1.9.3/2012-04-20) de 127.0.0.1: 60324

Görmek istediklerim satır sayısıdır

app/denetleyicileri/invoices_controller.rb: 30: `gösterisi' Google'da bununla ilgili bir şey bulmak gibi olamaz

hata oluştu r ve fonksiyonu. Muhtemelen yanlış isimlendirme kullanıyorum. Bunu nasıl düzelteceğini bilen var mı?

+0

Muhtemelen harekete geçtiniz ... ama çözümü anladınız mı? Aynı sorun var ve bir çözüm bulamıyorum – lnreddy

+0

Ah .. Sadece js koyduğumda, doğru hata izini göstermediğini fark ettim. Js'yi kaldırdığımda: true, bana hatanın oluştuğu kesin çizgiyi gösterir. – lnreddy

cevap

7

Temel olarak capibara'nın farklı süreçlerde çalıştığı için uygulama hakkında bilgisi yoktur. Bu sorunu kullanarak bu sorunu geçici bir çözüm olarak kullanabilirsiniz. https://gist.github.com/1443408

+0

Teşekkürler, bu link umut verici görünüyor! –

3

Sorun, asıl sayfanın bir hata nedeniyle oluşturulamaması ve bunun yerine bir iç sunucu hatası almanızdır. Internal Server Error undefined method..., sınamakta olduğunuz sayfanın içeriği'dir. RSpec/Capybara size nerede olduğunu söyleyemez çünkü test çerçevesi sadece sayfada gerçekten gördüğünüz şeyi test eder ve tam olarak gördüğünüz şeydir (save_and_open_page'u çalıştırdığınız zaman teyit ettiğiniz gibi).

Hatayı gidermek için, raylarınızın hata günlüğüne ya da çalıştığınız konsolun/terminale bakmalısınız. Daha fazla bilgi olmadan hatayı takip etmenize yardımcı olamam.

Bu yardımcı olur umarım.

+0

Garip olan şu ki üzerinde çalıştığım diğer uygulamada, terminalde tam olarak kesildiği satır numarasını yazıyor! –