2013-04-18 38 views
2

我們有兩個獨立的Ruby on Rails應用程序,一個接受上傳的文件,另一個從上傳其他應用程序接收的文件。如何集成測試兩個Rails應用程序

我們正在嘗試將端到端的黑盒迴歸和集成測試放在一起,這些測試證明當您將某個文件上傳到第一個應用程序時,可以指望從另一個應用程序獲取某個文件。

問題是如何編寫腳本,以便兩個單獨的數據庫通過種子值重置,兩個服務器被啓動並且Capybara訪問兩個單獨的「網站」。

到目前爲止,在構建和測試每個應用程序時,我們都依賴Rails的魔法,它使得事情「只是工作」,因此處理單獨的數據庫,單獨的服務器端口和其他未知的皺紋看起來像是一個絆腳石。

有沒有人編寫過這種測試的最佳實踐?任何如何自動化這種集成測試的例子?

回答

1

你可以把這兩個應用程序在線與Heroku。然後使用來自saucelabs.com的sauce_ruby gem作爲連接器來獲得rspec和capybara來運行測試應用程序。運行heroku運行rake db:在測試之前重置(使用seed.rb)種子數據(您可以編寫腳本)。 sauce ruby

+0

我非常喜歡你的答案。然而,它感覺比我希望的要重,因爲它需要部署才能運行測試和數據庫重置,並且因爲Selenium比Capybara webkit驅動程序或(更好的)機架驅動程序稍重。我有一個90%的解決方案,我希望稍後解釋:丟失的部分是其中一個數據庫中的rspec事務控制。 –

+0

sauce_ruby創業板已棄用,我目前正在尋找2016年的解決方案,將發佈一個答案,當我發現它:) – Ruff9

相關問題