web-dev-qa-db-fra.com

Concombre/Capybara - comment obtenir l'hôte et le port de l'exécution en cours

Je dois télécharger un fichier csv à partir de mon application à l'aide de Open :: URI. Pour ce faire, je dois lui attribuer un URI pleinement qualifié. Alors quel est le meilleur moyen d’obtenir l’hôte et plus important encore PORT dans mon script concombre?

Notez que j'utilise Capybara et Selenium

43
Jonathan

Vous pouvez définir le port qui sera utilisé pour générer un serveur d'applications

Capybara.server_port = 31337
35
iafonov

Pour capybara <2.0:

Capybara.current_session.driver.rack_server.Host
Capybara.current_session.driver.rack_server.port

Capybara 2.0:

Capybara.current_session.server.Host
Capybara.current_session.server.port

Pour votre information, mon cas d'utilisation est d'avoir des liens cliquables dans le courrier généré par les tests d'intégration.

75
Woahdae

Vous pouvez utiliser current_Host mais je ne sais pas s'il contient le port. Sinon, vous pouvez utiliser current_url et supprimer le chemin (et éventuellement la chaîne de requête).

0
moritz