2015-04-17 4 views
6

Ich versuche, herauszufinden, wie genau diese Funktionalität von Poltergeist in meine bestehenden Capybara-Tests zu implementieren, und ich habe kein Glück nach der Dokumentation hier lesen: https://github.com/teampoltergeist/poltergeistWie überprüfe ich Javascript-Fehler mit Capybara und Poltergeist?

ich den folgenden Code enthalten, aber Wenn ich meine Tests starte, sehe ich keine Warnung über JS-Fehler, wenn ich weiß, dass JS-Fehler in der Konsole vorhanden sind. Fehle ich etwas? Muss ich einen bestimmten Befehl im Terminal übergeben, um sicherzustellen, dass dieser auf JS-Fehler prüft? Vielen Dank!

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

Warum haben Sie js_errors auf false gesetzt? –

+0

Ah, tut mir leid, ich kopiere/pastete das von der Quelle, auf der ich es gefunden habe (ein weiterer SO-Thread). Ich habe es in meinem Code in true geändert, und ich sehe immer noch keine Warnungen über JS-Fehler, wenn ich –

Antwort

3

Ich lief in Ihrem Posting, nachdem ich eine ähnliche Frage googelte. In meinem Fall hatte ich mit webkit als Treiber in Capybara angefangen. Ich hatte einen Blogpost gelesen, in dem der folgende Code vorgeschlagen wurde, der den "have_errors" -Matcher zum Erfassen eines js-Fehlers verwendete.

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

Im Fall, dass Sie sich beziehen etwas ähnliches, Sie brauchen keine spezifische Methode zu verwenden, um zu überprüfen, wenn Sie Poltergeist verwenden. Sie können meinen Code sehen, der zeigt, was ich geschaltet habe.

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

Grundsätzlich prüfen jeden Test automatisch, wenn die Seite Fehler hat. Ich musste nur js: true in meinen Tests einführen. Ich habe dies verifiziert, indem ich absichtlich JS-Dateien zur Validierung dieser Tests fehlgeschlagen habe.

Ich hoffe, das war hilfreich.

+5

ausführen. Das funktioniert nicht in Poltergeist. 'expected # um auf 'has_errors?' zu antworten, zusätzlich ist der Link unterbrochen. – max

Verwandte Themen