2012-08-13 156 views
2

當談到web開發時,我非常習慣ASP.Net和Java世界。儘管過去我已經完成了一些PHP,但是我發現正在開發一個jRuby on Rails項目,並且有大量開發人員在兩個人重構相同區域時偶爾意外崩潰。驗證Ruby on Rails應用程序

因此,一個人將MethodA重命名爲MethodB,而其他人引用MethodA在檢入之前不更新。然後,我們沒有找到MethodA的參考,直到有人再次專門運行該測試場景。

當然,我們試圖儘可能多地使用rspec和測試客戶端的第三方應用程序進行自動化測試,但有沒有辦法幾乎「編譯」或「驗證」rails應用程序以確保所有的代碼路徑是否正確,沒有錯誤的引用,錯誤的類型等等,就像一個典型的編譯框架一樣?

謝謝!

編輯:爲了澄清,我理解測試和更新不能總是使變量或方法意外地被重命名爲動態語言時才知道。我本質上是在尋找一種方法來驗證jRuby on Rails應用程序,以確保沒有任何東西被掩蓋/錯過。

回答

0

作爲一種動態的鴨式語言,Ruby的本質使得以您所指的方式編譯Ruby代碼基本上是不可能的。儘管如此,見https://blog.gregbrockman.com/2012/01/static-analysis-in-ruby/

「...在登記之前不更新」?你用什麼VCS可以做到這一點?

此外 - 如果再次運行測試發現錯誤,是否涵蓋了您想要編譯的內容?你有開發人員不僅沒有更新,他們也不首先運行測試?

現在,如果你說測試對於沒有更新的開發者來說不會失敗,因爲他們沒有更新,那麼他們的編譯也不會失敗,所以我沒有看到編譯會有所幫助。

+0

取決於你在檢查什麼SVN不需要更新(如果有一個選項來強制執行,那麼當我正在使用它時沒有設置)。無論如何,也許我沒有解釋我在尋找的是什麼,但本質上是這樣的:我知道當一個變量或方法意外地以動態語言重新命名時,測試和更新並不總能讓它知道。我本質上是在尋找一種方法來驗證jRuby on Rails應用程序,以確保沒有任何東西被掩蓋/錯過。 – Kris 2012-08-13 17:06:16

+0

據我可以在網上找到這是最好的答案。我想這只是野獸的性質,但它肯定會是一個方便的東西。 – Kris 2012-09-12 04:41:49