2010-08-04 3 views
9

Wenn ich den Schritt "Zeige die Seite" benutze, kann ich mit Capybara/Cucumber steuern, wo die Dateien ausgegeben werden? Ich kann nicht scheinen, die Konfiguration dafür zu finden, und mein google fu versagt mich.Wie Capybara Ausgabe HTML in einen bestimmten Ordner zu setzen?

Im Moment scheint es, dass sie standardmäßig zum Stamm meines Rails-Ordners gehen und die Dinge dort durcheinander bringen.

Antwort

11

Es ist in der Tat eine Konfigurationsoption, die Sie, wo die Ausgabe angeben können die Dateien:

Capybara.save_and_open_page_path

Ich glaube, es wurde in der neuesten Version (0.3.9) hinzugefügt

In Ihrer env.rb Datei, die Sie können, wie etwas tun:

Capybara.save_and_open_page_path = '/Users/jsboulanger/my-rails-project/tmp' 

In Capybara 2.10 ist Capybara::save_and_open_page= veraltet. Rufen Sie stattdessen Capybara::save_path=

+3

Brilliant! Obwohl es so aussah, als wäre der Pfad relativ zu meinem Rails-Projekt, konnte ich einfach folgendes verwenden: Capybara.save_and_open_page_path = 'tmp' Aber es funktionierte großartig - danke! –

+0

Du hast Recht, sollte sowieso keinen absoluten Pfad verwenden. – jsboulanger

+0

Ich empfehle, das tmp-Dateiverzeichnis des Betriebssystems zu verwenden. AFAIK, es gibt keinen Prozess, der diese Capybara-Dateien aus dem Rails-Projekt tmp dir reinigt. 'Capybara.save_path = '/ tmp'' –

7

Nizza. Danke dafür.

Um wirklich ordentlich zu sein habe ich die Konfigurationszeile zu config/environments/test.rb hinzugefügt, da Sie in der Regel nur Capybara im Test verwenden, und das funktioniert gut.

Da eine Reihe von Unterordnern in tmp es/I verwendet:

Capybara.save_and_open_page_path = 'tmp/capybara' 

und diesen Ordner erstellt.