我有一個系統,高度依賴於各種網絡API。我想每天至少運行一次我的API特定測試,以確保所有的API仍然可以很好地運行。我有一組單元測試(只是測試預期數據的API調用的簡單rb文件),並且希望每24小時運行一次。如果有事情中斷,我想採取行動(例如電子郵件或短信)。如何自動運行Ruby測試?
如何最好地設置自動化Ruby測試和解析結果?我可以只設置一個cron作業來處理.rb文件嗎?如果測試失敗,我將如何採取措施並以編程方式進行檢測?也許RUby有一種持續集成解決方案可以解決這個問題?
我有一個系統,高度依賴於各種網絡API。我想每天至少運行一次我的API特定測試,以確保所有的API仍然可以很好地運行。我有一組單元測試(只是測試預期數據的API調用的簡單rb文件),並且希望每24小時運行一次。如果有事情中斷,我想採取行動(例如電子郵件或短信)。如何自動運行Ruby測試?
如何最好地設置自動化Ruby測試和解析結果?我可以只設置一個cron作業來處理.rb文件嗎?如果測試失敗,我將如何採取措施並以編程方式進行檢測?也許RUby有一種持續集成解決方案可以解決這個問題?
我剛剛通過使用Dr. Nic的this amazing tutorial來設置Hudson CI作爲我的集成服務器。它通過一個gem安裝,幾乎預先配置好,而且工作起來非常簡單。
我正在使用rspec和cucumber,而Hudson在我的git存儲庫上看到一個新提交時運行所有測試。如果所有測試都通過,它會將代碼合併到我的主分支中。如果任何測試失敗,它會保存它的馬匹,併發送給我一封電子郵件。
編輯:
我也希望給10個大拇指到ChuckNorris插件哈德森。敏捷並沒有比Walker,Texas Ranger的配對編程更好。
Ruby有Test::Unit內置,RSpec,ZenTest,shoulda,cucumber,可能更多的工具來幫助測試。作爲內置的,Test :: Unit被大量使用,並且是被其他工具打敗的目標。
ZenTest和RSpec可以做連續測試:你做一個改變並保存一個文件,他們會看到它並運行測試套件。我喜歡這樣,因爲那樣我就能馬上知道事物的狀態。
我沒有使用黃瓜,但已使用其餘的。我聽說黃瓜的重點是集成測試,但這可能是評論者的感受,而不是開發人員的設計。 list of tutorials for cucumber是有趣的瀏覽。特別是有webrat: Automated Acceptance Testing with RSpec or Cucumber。
這些中的任何一個都可以用cron連線以定期運行;只要像對待任何其他命令行應用程序那樣對待它們即可。
它也應該很容易搭配網絡測試,但你必須識別所需的寶石/模塊並編寫膠水代碼。我沒有必要使用機械化和/或其他HTTP寶石加Nokogiri來搜尋這些頁面,因此我不需要這樣的野獸。
我不喜歡使用Hudson測試的唯一情況是可能檢查錯誤的代碼。我寧願知道它在代碼提交之前通過測試。沒有什麼比擁有一個好的代碼基礎更加惱人的了,更新它,並且觀看它去h-e-double-toothpicks。 – 2010-12-07 22:22:47