2015-04-17 18 views
6

Tôi đang cố gắng để tìm ra cách chính xác để thực hiện chức năng này của Poltergeist vào kiểm tra Capybara hiện tại của tôi, và tôi không có bất kỳ may mắn sau khi đọc tài liệu ở đây: https://github.com/teampoltergeist/poltergeistLàm cách nào để kiểm tra lỗi Javascript bằng capybara và poltergeist?

Tôi đã bao gồm mã dưới đây, nhưng khi tôi chạy thử nghiệm của mình, tôi không thấy bất kỳ cảnh báo nào về lỗi JS khi tôi biết có lỗi JS trong bảng điều khiển. Tui bỏ lỡ điều gì vậy? Tôi có phải vượt qua trong một lệnh cụ thể trong thiết bị đầu cuối để đảm bảo điều này kiểm tra lỗi JS? Cảm ơn!

require 'capybara/poltergeist' 
Capybara.javascript_driver = :poltergeist 

options = {js_errors: true} 
Capybara.register_driver :poltergeist do |app| 
    Capybara::Poltergeist::Driver.new(app, options) 
end 
+0

Tại sao bạn đặt js_errors thành false? –

+0

Ah, xin lỗi tôi sao chép/dán này từ nguồn tôi tìm thấy nó trên (một chủ đề SO). Tôi đã thay đổi nó thành true trong mã của tôi, và tôi vẫn không thấy cảnh báo về lỗi JS khi tôi chạy –

Trả lời

3

Tôi chạy vào bài đăng của bạn sau khi tôi googled một câu hỏi tương tự. Trong trường hợp của tôi, tôi đã bắt đầu với webkit làm tài xế trong capybara. Tôi đã đọc một bài đăng trên blog đề xuất mã sau, sử dụng đối sánh "have_errors" để nắm bắt bất kỳ lỗi js nào.

it 'should not have JavaScript errors', js: true do  
visit(root_path)  
expect(page).to_not have_errors   
end 

Trong trường hợp bạn đang đề cập đến điều gì đó tương tự, bạn không cần sử dụng bất kỳ phương pháp cụ thể nào để kiểm tra khi bạn đang sử dụng poltergeist. Bạn có thể thấy mã của tôi cho thấy những gì tôi đã chuyển đổi.

https://github.com/alaghu/learn_jquery/compare/dev...1d6be6dfd500

Về cơ bản, mọi kiểm tra sẽ tự động kiểm tra xem trang có lỗi hay không. Tôi chỉ phải giới thiệu js: đúng trong các bài kiểm tra của tôi. Tôi đã xác minh điều này bằng cách cố ý báo lỗi các tệp js để xác thực các thử nghiệm này.

Hy vọng điều này hữu ích.

+5

Điều này không hoạt động trong Poltergeist. 'dự kiến ​​# để trả lời 'has_errors?'' ngoài ra, liên kết bị hỏng. – max

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