Wie konfiguriere ich Capybara, um mit Poltergeist zu arbeiten?

8

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:

  

Installation

     

Fügen Sie Poltergeist zu Ihrer Gemdatei hinzu und fügen Sie in Ihrem Test-Setup Folgendes hinzu:

%Vor%

Aber es sagt nicht, auf welche Datei es genau eingehen sollte. It sagt auch :

  

Anpassung

     

Sie können die Art und Weise, wie Capybara Poltegeist einrichtet, über den folgenden Code in Ihrem Test-Setup anpassen:

%Vor%

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?

  • Wo muss ich die Konfiguration für Capybara und Poltergiest ablegen und was genau muss ich sagen (oder wie kann ich das selbst bestimmen)?
  • Gibt es einen Schritt oder eine Konfiguration, die ich verpasst habe?
Kevin 25.06.2014, 18:19
quelle

1 Antwort

11

Setzen Sie js: true in Ihre Beschreibungszeile. Ich weiß, dass ich dies für Feature-Spezifikationen in einer App bei der Arbeit tun musste:

%Vor%

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.

    
agmcleod 27.06.2014, 19:54
quelle