2017-08-26 98 views
-1

我們現在正在與Ruby,Cucumber和Selenium一起執行我們的集成測試。將舊項目升級到capybara

現在我們想提高我們的測試質量,因此我們想要使用水豚。

現在由於我們所有的方法都需要重寫,所以我們認爲也許有人已經這樣做了,並且爲Capybara做這項工作的selenium webdriver寫了一個封裝。

例如:

的包裝應替換以下:

driver.navigate_to "/home" 

喜歡的東西

visit "/home" 

的一點是,我們不想將改寫我們的所有代碼,因爲我看來的功能是相同的,編寫驅動程序的包裝程序並不是那麼困難,這會自動完成。意思是:navigate_to方法只是調用訪問方法,我很高興。

我必須自己寫這個,還是已經完成了?

非常感謝!

+1

我不認爲這存在,你應該重寫你的方法。 – MSathieu

回答

0

不,現有的包裝沒有。

你似乎錯過了這個事實,水豚本身就是一個圍繞硒-webdriver的包裝,所以你要求一個圍繞硒包裝硒的兼容包裝。再加上這樣一個事實,即如果你所做的只是用水豚命令來模擬你現有的硒命令,你將不會從水豚中獲得任何東西,所以它毫無意義。聽起來你的團隊會更好地離開現有測試,使用Capybara編寫所有新測試,而現有測試需要更改/維護重寫它們以使用Capybara內置的等待/重試和更友好的API。

+0

我已經理解了,但它不會改變我的問題,即我有很多舊的測試,我不想重寫。也就是說,我已經寫過,確切的問題。 Navigate_to和訪問做同樣的事情,只是訪問更好。 – MJohnyJ

+0

@MJohnyJ'' visit''實際上並不比''navigate'好,當水豚和Selenium一起使用時,它只是歸結爲'def visit(path) browser.navigate.to(path) end'正如我在回答中所述,不要重寫當前的測試,直到他們需要改變,並開始使用Capybara寫新的測試。 –

+0

事情是,他們必須改變。許多測試隨機失敗。爲了對抗這種行爲,過去我們增加了延誤,許多人等到了。 這些放慢了測試速度,仍然隨機測試失敗。我們希望用Capybara解決這個問題,但是因爲我們正在談論2000行代碼,所以必須找到另一個修補程序 – MJohnyJ