Ich habe einen RSpec-Integrationstest, der etwas JavaScript ausführen muss. Ich habe Poltergeist eingeschlossen und PhantomJS installiert, aber immer, wenn ich das Beispiel ausführe, erhalte ich diesen Fehler:
%Vor%Die Spezifikation ist:
%Vor%Ich denke, das Problem ist, dass ich nicht sicher bin, wie ich darauf hinweisen soll, dass Capybara Poltergeist als seinen JavaScript-Treiber verwenden sollte. Die Poltergeist-Dokumentation lautet:
%Vor%Installation
Fügen Sie Poltergeist zu Ihrer Gemdatei hinzu und fügen Sie in Ihrem Test-Setup Folgendes hinzu:
Aber es sagt nicht, auf welche Datei es genau eingehen sollte. It sagt auch :
%Vor%Anpassung
Sie können die Art und Weise, wie Capybara Poltegeist einrichtet, über den folgenden Code in Ihrem Test-Setup anpassen:
Aber es ist mir nicht klar, ob oder wann ich dies in meine Tests aufnehmen müsste. Und ich bin mir nicht sicher, wo ich es hinstellen soll, wenn es nötig ist.
Was fehlt mir?
Setzen Sie js: true
in Ihre Beschreibungszeile. Ich weiß, dass ich dies für Feature-Spezifikationen in einer App bei der Arbeit tun musste:
Ich sehe keine andere Konfiguration dafür. War vor einiger Zeit als ich es eingerichtet habe:)
Sie können die Capybara-Treiber-Konfigurationsmethoden einfach vor dem RSpec.configure-Block aufrufen:
%Vor%Achten Sie auch darauf, dass Sie truncation not transaction with database cleaner verwenden. Poltergeist wird in einem separaten Thread ausgeführt, sodass Sie wahrscheinlich seltsame Probleme mit der Datenbank haben, wenn Sie Transaktionen verwenden.
Bearbeiten
Ah das wahre Ding wird hier erwähnt: Ссылка in der Capybara Readme.
Tags und Links ruby-on-rails-3 capybara rspec2 rspec poltergeist