2012-11-15 51 views
4

我正在編寫一個網站,這將非常依賴屏幕抓取。因爲我知道屏幕抓取很容易中斷,所以我想以某種方式得到通知,說明存在問題。如何使用rspec來測試屏幕抓取?

我認爲可行的解決方案是爲我想支持的每個站點編寫rspec測試。測試將打開每個站點的一些遠程頁面,並將它們與我期望從刮板獲得的輸出進行比較。我還想在本地緩存副本上運行相同的測試,以便我知道我的代碼更改是否破壞了刮板或遠程站點是否發生了更改。我想以某種方式每天運行一次這些測試,並通知我任何問題。

最終我想讓它成爲寶石,因爲這對我來說是一個重複發生的問題。我傾向於做大量的拼寫,很高興知道事情何時破裂。

所以我的問題是我相對較新的編寫我的代碼測試,我不知道什麼是最好的方式來設置這是。

回答

5

看看VCR gem,它可以讓你獲得想要測試的各種頁面的本地副本,同時有能力每隔一段時間更新一次,並且可以在實時頁面上進行測試。

+0

看起來很酷。我仍然需要找出一種方法來自動執行測試並在失敗時通知我。 – hadees

+1

這聽起來像你想要持續集成。這裏有很多解決方案,它會在每次提交後自動運行你的套件,並在出現問題時通知你。我使用了[CruiseControl.rb](http://cruisecontrolrb.thoughtworks.com/)和[TeamCity](http://www.jetbrains.com/teamcity/),這兩個都沒問題。 [特拉維斯CI](https://travis-ci.org/)也獲得了很多愛,但我沒有親身體驗過它。 – x1a4