2010-01-11 84 views
1

我正在使用Visual Studio 2008的C#.net項目,所以我的問題是專門針對這種情況。但是,這個問題應該與其他許多環境相同,所以我很樂意聽到類似環境中的人們的意見。在解決方案中構建單元測試的最佳方式是什麼?

我的解決方案是在幾個項目中組織的。所有這些都有一些所有單元測試。有幾種方法可以構建測試,我認爲處理這個問題的最好方法是有一個對應的「。測試」 - 項目pr項目。即我有這些項目:

MyApp.Model 
MyApp.Utils 

給我相應的測試項目;

MyApp.Model.Tests 
MyApp.Utils.Tests 

這非常好地包裝了所有測試,將所有測試一起放入一個項目中,爲每個「測試組」組合一個組件。我覺得這是一段時間內最好的方式,但隨着應用程序的增長,我每次添加一個新項目時都會得到2個新項目,而不是每個項目。現在我認爲它開始變得混亂,我正在考慮添加一個單獨的項目來保存我所有的測試。這個項目中的測試仍然可以很好地結構化,並具有良好的文件結構。

所以;人們如何構建他們的測試?

回答

2

對於每個項目都有一個單獨的測試項目,即Project.Tests。然後,我將所有測試項目存儲在一個Solution Folder即「測試項目」中。

+0

我使用相同的方法。當解決方案開始讓許多項目變得雜亂無章時,解決方案文件夾是組織它,測試或其他方式的好方法。 – jonsb 2010-01-11 09:49:22

+0

其實我並不知道解決方案文件夾。這絕對是我正在尋找的!將有一個去吧。謝謝! – stiank81 2010-01-11 11:40:38

+0

確認。解決方案文件夾正是我所需要的!如果我想在一個新的解決方案中重用一些項目但不是全部,這也可以防止單個測試項目的問題。我需要一個全新的測試項目,與其他解決方案共享一些測試 - 而不是像我可以使用解決方案文件夾那樣重複使用相關項目。謝謝! – stiank81 2010-01-11 12:22:29

1

1個項目爲全部測試。

然後來到文件夾& namespaces integration/unit/regression =>然後project1/project2/project2。

配置你的測試運行器只運行單元測試(即 - 通過命名空間),就是這樣!
構建時間更快,但仍然保持良好的結構化解決方案(當然,這種方法可能不合適,當然總會有排除)。

1

我通常遵循與你在這裏相同的結構。它提供了一個很好的一致模式,您可以直接在解決方案資源管理器中測試的項目下獲得相應的測試。可以輕鬆瀏覽並找出測試的位置以及測試代碼的位置。對於熟悉這種結構的其他人來說,也更容易進入你的代碼。

如果您有太多項目的問題,應該更主動地使用文件夾。將項目(及其測試)分組到良好命名和結構良好的文件夾中。

+0

並且「將文件夾及其測試分組到文件夾中」您指的是解決方案文件夾?你是否爲每個「項目」建議一個文件夾,包含項目本身及其相應的測試項目?因此一個文件夾用於MyApp.Utils和MyApp.Utils.Tests? – stiank81 2010-01-11 11:46:47

+1

解決方案文件夾,是的,但不是每個項目一個文件夾。我們通常將具有共同目的或域的項目集中在文件夾中。即一個用於GUI組件的文件夾,另一個用於域對象,一個用於數據庫相關的東西等。 – erikric 2010-01-11 11:56:46

相關問題