2013-01-05 17 views
5

Tôi đang sử dụng Capybara với webkit để thử nghiệm của mình, nhưng vì một lý do nào đó khi thử nghiệm không hiển thị lỗi, nhưng không xuất hiện ở đâu trong mã.Tại sao RSpec/Capybara không hiển thị các lỗi xảy ra

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)>' 

và khi sử dụng save_and_open_page nó sẽ chỉ hiển thị các lỗi, không có thông tin về nơi mà nó xảy ra:

Internal Server Error

phương pháp xác định 'CLIENT_ID' cho # WEBrick/1.3.1 (Ruby/1.9.3/2012-04-20) tại 127.0.0.1:60324

Điều tôi mong đợi là dòng chữ số r và chức năng mà các lỗi xảy ra:

app/controllers/invoices_controller.rb: 30: trong `show'

tôi dường như không thể tìm thấy bất cứ điều gì liên quan đến này trên Google. Tôi có thể sử dụng danh pháp không chính xác. Co ai biêt lam cach nao để sửa no không?

+0

Bạn có thể đã chuyển sang ... nhưng bạn đã tìm ra giải pháp chưa? Tôi có cùng một vấn đề và không thể tìm thấy một giải pháp – lnreddy

+0

Ah .. Tôi chỉ nhận thấy rằng khi tôi đặt js: true, nó không cho tôi thấy dấu vết lỗi chính xác. Khi tôi gỡ bỏ js: true, nó cho tôi thấy đường chính xác nơi xảy ra lỗi. – lnreddy

Trả lời

7

Về cơ bản capybara không có kiến ​​thức về ứng dụng, vì nó đang chạy trong quá trình khác. Bạn có thể giải quyết vấn đề này bằng cách sử dụng mẹo này được mô tả ở đây https://gist.github.com/1443408

+0

Cảm ơn, liên kết đó có vẻ đầy hứa hẹn! –

3

Vấn đề là trang thực tế không hiển thị do lỗi và thay vào đó bạn nhận được lỗi máy chủ nội bộ. Vì vậy, Internal Server Error undefined method... nội dung của trang bạn đang thử nghiệm. RSpec/Capybara không thể cho bạn biết vị trí xảy ra vì khung kiểm tra chỉ kiểm tra những gì bạn thực sự thấy trên trang và đó chính xác là những gì bạn thấy (như bạn đã xác nhận khi bạn chạy save_and_open_page).

Để theo dõi lỗi, bạn nên xem nhật ký lỗi đường ray của mình hoặc bảng điều khiển/thiết bị đầu cuối nơi bạn đang chạy nó. Không có thêm thông tin, tôi không thể giúp bạn theo dõi lỗi.

Hy vọng điều đó sẽ hữu ích.

+0

Điều kỳ lạ là trên ứng dụng khác tôi đang làm việc, nó nói trong thiết bị đầu cuối chính xác số dòng nơi nó phá vỡ! –

Các vấn đề liên quan