Multidomain Rails 3 App mit Capybara testen

9

Ich möchte meine RoR3-App für mehrere Domains testen.

Hier ist mein test_helper.rb

%Vor%

Und mein Integrationstest:

%Vor%

Und ich bin mir sicher, dass der Link existiert. Es gibt ein Problem beim Klicken und Füllen von Sachen.

%Vor%

funktioniert auch nicht.

Ich denke, der Standard-Capybara-Treiber Rack :: Test könnte Probleme mit diesem Multidomain-Zeug haben?

    
dreake 18.01.2011, 12:29
quelle

6 Antworten

1

Das Problem war, dass ich Multidomain-Sachen benutze, also musste ich lvh.me verwenden, was localhost auflöst. Sie können dasselbe tun, indem Sie Ihre / etc / hosts

setzen %Vor%

und dann diese Domain verwenden.

Ich habe Capybaras Besuchsmethode mit etw überschrieben:

%Vor%

Das Problem ist jedoch weiterhin aufgetreten. Wenn Capybara zum Beispiel auf den Link geklickt hat, wurde die Besuchsmethode nicht verwendet und mein Host wurde nicht angefordert. Was war? Ich weiß es nicht - wahrscheinlich der Standard.

Also Lösung Host und Port in Capybara Einstellungen zu setzen:

%Vor%     
dreake 25.01.2011 09:08
quelle
1

Anscheinend ist es ein Problem mit dem Rack-Test.

Aber es gibt eine Abzweigung von hassox , die es gerade für mich gelöst hat. Es sind nur ein paar Commits, die wirklich wichtig sind, falls Sie überprüfen wollen, was die Änderungen sind.

So sieht mein Gemfile aus:

%Vor%

Und dann stelle ich einfach sicher,

%Vor%

in meinen Schritten. Jetzt versuche ich zu verstehen, was URL-Helfer mit Sub-Domains arbeiten lassen würde.

    
ilpoldo 16.02.2011 18:17
quelle
1

Hier ist eine schnelle Einrichtung, die Ihnen helfen kann ...

Schienen 3.2+ testen benutzerdefinierte Subdomains mit Gurke Capybara mit Pow Setup:

Ссылка

    
SVR 06.01.2013 07:19
quelle
1

Ich würde gern mitteilen, was ich für eine großartige Lösung für dieses Problem gefunden habe. Dazu müssen Sie eine Hilfsmethode erstellen, die URLs mit der gewünschten Subdomäne vorlegt, keine Capybara-Methoden überschreibt und mit den Treibern von Rack :: Test und capybara-webkit arbeitet. In der Tat wird es sogar in Spezifikationen funktionieren, die nicht einmal Capybara verwenden. (Quelle: Ссылка )

Die Spec-Helper-Methode

%Vor%

Und um es zu veranschaulichen, hier zwei Beispiele:

Wird in einer Featurespezifikation (mit Capybara)

verwendet %Vor%

Wird in einer Anforderungsspezifikation (ohne Capybara) verwendet

%Vor%     
Christian 07.05.2013 20:27
quelle
1

Rufen Sie in Ihrem Setup diese Rack :: Test-Funktion auf, die den Wert Ihres Hosts ändert. Nun, es ändert den Host, der über die gefälschte Webanfrage zurückkommt.

%Vor%     
Jesse Wolgamott 18.01.2011 20:13
quelle
0

Eine einfache und saubere Lösung besteht darin, die URLs zu überschreiben, die Sie Capybaras Besuchsmethode zur Verfügung stellen. Es funktioniert gut mit * .lvh.me Domains, die Sie zu localhost umleiten:

%Vor%

Oder Sie können dasselbe tun, indem Sie app_host vor einer Spezifikation neu definieren:

%Vor%     
Spajus 08.10.2012 05:46
quelle