2017-04-13 23 views
1

我正在開發一個基於sinatra的Web應用程序,並且我廣泛使用測試來確保部署前一切正常。作爲測試框架,我使用了webkit的minitest :: specs和capybara。更改Capybara驗收測試的基礎URL

我的問題是,在部署之後我的應用程序與基本URL像這樣運行:

http://cool.server.net/to-the-application/ 

但在測試過程中水豚假定全新基地的URL與路徑/to-the-application/。這意味着我無法測試以發現與忘記在鏈接和操作中設置基礎URL有關的錯誤。

對於乾燥測試我跟着Changing the base URL for Rails 3 development和修改我的config.ru,但我還沒有找到任何方法讓水豚使用不同的基地。

任何想法如何解決這個問題?

+0

我有興趣更改應用程序的測試,就好像它不在服務器URL的根目錄中一樣。編輯該問題(希望)更清楚地反映出來... – Jan

回答

1

如果使用rack_test驅動程序,主機名將被完全忽略,因此更改它不會執行任何操作。如果使用的是不同的驅動程序,您可以指定

Capybara.app_host = "http://cool.server.net" 

注意cool.server.net一般會需要,因爲那裏水豚結合被測試的應用程序這就是解決爲127.0.0.1。

更新:想到這個後,我不知道這是你想要的。如果你想要水豚將你的應用程序安裝在/to-the-application下,那麼你將不得不創建你自己的應用程序對象,你分配給Capybara.app - 請參閱https://github.com/teamcapybara/capybara/blob/2.13_stable/lib/capybara/rails.rb#L4瞭解Capybara目前如何掛載應用程序。

+0

感謝您的答案,我會挖掘水豚應用程序對象。我曾希望別人讀過,並回來告訴它...... 8) – Jan