如果我爲一個開發項目創建了一個測試套件,那麼這些類是否應該與其餘的項目代碼一起保存在版本控制之下?單元測試類是否應該在版本控制下與其餘的代碼保持一致?
回答
是的,沒有理由不把它們放在源代碼控制中。如果測試發生變化會怎樣?如果接口發生變化,那麼測試需要改變呢?
絕對。測試類必須與代碼保持同步。這意味着檢查它並在持續集成下運行測試。
是的,他們應該。查看最新版本的人應該能夠在他們的機器上對代碼進行單元測試。這將有助於識別缺失的依賴關係,還可以向他們提供關於代碼如何工作的非官方文檔。
是的。
測試代碼是一個代碼。它應該被維護,重構和版本化。它是您系統源的一部分。
是的,所有將生產代碼放入源代碼管理的原因仍然適用於您編寫的任何單元測試。
這是典型的誰,在哪裏,爲什麼問題:
- 誰改變了代碼?
- 他們什麼時候改變它?
- 他們改變了什麼?
這些問題與測試代碼一樣與生產代碼相關。您絕對應該將您的單元測試代碼放入存儲庫。
當然,他們應該被視爲您的代碼庫的一等公民。他們需要所有的愛和關心,即任何代碼的維護。
是的,他們應該。您應該檢查測試並在您更改代碼時運行測試。如果你把它們放在別的地方,那麼運行它們會有更多的麻煩。
絕對!測試類是源代碼,應該像其他任何源代碼一樣進行管理。您需要修改它們並跟蹤版本,並且您想知道維護歷史記錄。
除非是大規模的,否則您還應該將測試數據保存在源代碼管理下。
是的。除了這裏提到的所有其他原因外,還有一個事實,即隨着功能的變化,你的測試套件將會發生變化,並且應該很容易爲任何給定的發行版,分支等獲得正確的測試套件,並且不僅僅是測試在版本控制中,但與代碼相同的存儲庫是實現該目標的方式。
絕對如此。您可能會發現,隨着代碼更改,您的測試可能也需要更改,因此您可能需要記錄這些更改,特別是如果測試或代碼突然停止工作。 ;-)
此外,單元測試用例應儘可能地保持與他們正在測試的實際代碼(相同文件的底部似乎是標準)。這與維護方便一樣方便。
要了解關於什麼是良好的單元測試的更多閱讀,請查看this stackoverflow post。
單元測試應該綁定到存儲庫中的代碼庫。
除了如果您必須爲以前的版本生成維護版本之外,沒有其他原因,您可以保證,通過單元測試的指標,您的代碼不會比以前更糟糕(並且希望現在更好)。
是的,因爲上述所有原因,如果您正在使用持續集成服務器「監視」您的源代碼管理,您可以讓它在每次提交時運行最新的單元測試。
這意味着單元測試失敗以及代碼無法編譯會導致破壞的構建。
的確如此。怎麼會有人不這樣想?
如果您使用代碼分支,您應該嘗試使您的測試代碼自然適合主代碼行,因此當您分支時,測試的正確版本也會分支。
- 1. Spring Roo的項目 - 什麼應該保持在版本控制
- 2. 基本上持久化的單元測試代碼 - 我應該打擾嗎?
- 3. INTEL-XDK和源代碼/版本控制 - 是否支持?
- 4. 下面的代碼是否值得單元測試?
- 5. 單元測試舊版C#代碼
- 6. 此單元測試是否必須與其測試的控制器位於同一個包中?
- 7. 如何單元測試一個餘燼控制器
- 8. 替代rails集成測試的控制器測試應該始終堅持db?
- 9. 一個單元應該在rails中測試持久性嗎?
- 10. 單元測試與早該
- 11. 如何保持控制特有的CSS與控制代碼(ASP.NET)
- 12. 單元測試基本控制器
- 13. 在哪裏保持單元測試?
- 14. 測試單元測試是否存在保存方法
- 15. 我們應該單元測試控制檯輸出嗎?
- 16. 單元測試控制器
- 17. 單元測試RESTAPI http響應代碼
- 18. MVC3單元測試響應代碼
- 19. 在單元測試中重複代碼是否更容忍?
- 20. 調試版本代碼1 INSTALL_FAILED_INVALID_APK錯誤與0不一致
- 21. 我是否應該通過單元測試覆蓋代碼,即使它已經被集成測試涵蓋了?
- 22. 單元測試ASP.NET代碼
- 23. 我應該使用CodeIgniter的單元測試類還是PHPUnit/TOAST?
- 24. Form1.Designer.cs很難保持在版本控制下
- 25. 一個單元應該如何測試一個.NET MVC控制器?
- 26. VS2015將單元測試添加到源代碼控制
- 27. 單元測試的典型大小與測試代碼相比
- 28. 我是否需要在單元測試中測試邊界類?
- 29. 保持測試類與源類同步
- 30. 是否有TSQL sproc單元測試的代碼覆蓋工具?
理想情況下,您更改測試以演示您的更改(並失敗),然後更改您的代碼以通過測試。一旦測試再次通過,請將其全部重新檢入源代碼控制。這是測試驅動的開發。 – 2008-09-22 15:22:43