2011-07-22 10 views
40

Potrzebuję pobrać plik csv z mojej aplikacji przy użyciu Open :: URI i do tego potrzebuję nadać mu w pełni kwalifikowany URI. Więc jaki jest najlepszy sposób, aby uzyskać HOST i co ważniejsze PORT w moim scenariuszu ogórka?Ogórek/Kapibara - jak uzyskać hosta i port bieżącej realizacji

Uwaga używam Capybara i selen

+0

Na zewnątrz Kapibara: http://stackoverflow.com/questions/6807268/rails-port-of-testing-environment/17496025#17496025 –

Odpowiedz

33

Można ustawić port, który będzie używany do tarła serwera aplikacji

Capybara.server_port = 31337 
+0

To zrobiło to dla mnie - dzięki! – Jonathan

+2

@iafonov, +1 do 31337 –

+0

Chciałem kapibary słuchać wszystkie interfejsy tak ustawić hosta serwera '' 'rubin Capybara.server_host =„0.0.0.0” ' '' – bonyiii

0

Można użyć current_host ale nie wiem, czy zawiera port. Alternatywnie możesz użyć current_url i usunąć ścieżkę (i ewentualnie ciąg zapytania).

66

Dla kapibary < 2.0:

Capybara.current_session.driver.rack_server.host 
Capybara.current_session.driver.rack_server.port 

Kapibara 2.0:

Capybara.current_session.server.host 
Capybara.current_session.server.port 

FYI, mój wykorzystanie Przypadek ma klikalne linki w poczcie generowane przez testy integracyjne.

+2

Ustawianie Capybara.server_port pracował gdy selen test integracji przebiegał niezależnie od innych testów integracyjnych, ale nie udało się zmienić portu, gdy uruchomiłem go z innymi testami, przynajmniej w moim środowisku. Pytanie o numer portu, jakiego chciałem użyć, wydawało się działać lepiej przy kilku testach. Może to działałoby, gdybym zmienił port dla wszystkich testów, zamiast pozwolić sobie na samodzielny wybór. –

+1

Używałem tego rozwiązania, ale nie działa ono już z najnowszą wersją Capybara. Otrzymuję ten błąd: NoMethodError: niezdefiniowana metoda 'rack_server 'dla # Pablo

+0

Zaktualizowana dla wersji 2.0 (to jeszcze prostsze, yay!) – Woahdae

Powiązane problemy