簡體   English   中英

.NET單元測試項目組織

[英].NET unit testing projects organisation

您認為在大型.net應用程序中管理單元測試的最佳方法是什么? 是否更好地為解決方案中的每個單獨項目添加測試項目,或者為其余項目中的所有測試添加一個大型測試項目?

例如,如果解決方案中有10個項目,那么有10個額外的測試項目或者一個大型測試項目是否足以滿足整個解決方案的需要?

我知道模塊化測試組件有一些好處,但使用測試類別可以實現非常相似的功能。 許多項目的編譯需要更長的時間,但您可以排除當時不需要的項目,而如果您只有一個項目,則無法執行此操作,但編譯所需的時間會少一些。

請在答案中概述每個選項的優缺點。

Phil Haack撰寫了一篇關於單元測試結構的好文章。 在編寫單元測試時,這已成為我個人的最佳實踐。 以下是他的文章http://haacked.com/archive/2012/01/02/structuring-unit-tests.aspx的鏈接

至於你的問題,我總是為單元測試創​​建一個單獨的項目,並用附加的.UnitTests命名它(我這樣做是為了區分單元測試和集成測試)。 例如,如果我的主項目是Sample.WebUI,則測試將是Sample.WebUI.UnitTests。

確實,單元測試會為編譯增加額外的時間,但我認為這是一個小問題。 我正在研究一個包含17個項目的解決方案(不包括單元測試),編譯所有內容大約需要50-60秒。 只是有足夠的時間把我的眼睛從顯示器上移開並看一些其他的變化:-)

關於類別,如果您有一些日常構建需要快速完成測試,那么使用它們並將它們與那些需要更長時間才能完成的測試(如集成測試)區分開來。 此外,如果您使用TFS,使用類別可以幫助自動化和測試您的簽到。

就個人而言,我更喜歡每個真實項目都有一個專門的測試項目。 在構建新功能/模塊/項目時,我發現能夠快速過濾掉其他不相關的測試項目套件要好得多。 它使TDD周期變得更快,以便在我開發它時能夠快速運行我的新項目的測試。

更重要的是,它可以幫助您根據需要為您的燈具保持各種測試/模擬類的良好組織,而不會將大量不相關的代碼混雜在一起。 它還使新開發人員更容易找到相關的測試。 最后,它確保您的測試對特定項目的依賴性永遠不會意外地依賴於另一個不相關的項目。

我個人的選擇是每個項目只有一個單元測試就有一個測試項目。 此測試項目的文件夾結構與正在測試的項目完全相同。 除此之外,根據需要制作盡可能多的集成測試項目。

這種方法的主要優點是,當您想要獲取1個項目並在不同的解決方案中使用它時,您總是將測試項目放在一起,確保當您必須在新解決方案中獲得機會時,質量仍然存在。

到目前為止,除了必須更換引用之外,我沒有發現任何不滿,因此在使用一個測試項目時你必須這樣做。

看看這個問題: “最佳實踐:組織單元測試”

雖然所討論的解決方案大小不同,但在那里編寫的指南仍然有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM