2010-03-30 117 views
8

我在考慮在哪裏放置單元/集成測試項目。我遵循1個測試項目公關。項目約定單元測試項目放在哪裏

我能想到的3種方式,這一切似乎都對我很好,這使得它一種很難選擇:-)

  1. 測試項目下的測試放在子文件夾中的項目它試驗。
  2. 測試項目放在它測試的項目旁邊,位於「項目」.Tests文件夾中。我相信這是Roy Osherove推薦的。
  3. 將所有測試項目放入根目錄下的子文件夾中。例如\ Tests \「project」。測試
  4. 還有別的嗎?

你選擇什麼,爲什麼?

回答

1

我會和#1一起去,這樣當你完成項目結賬時,你也有測試。否則,測試甚至會變得事後再想。

3

我喜歡讓所有項目在物理上處於同一級別。我沒有太大的爭議,只是爲了簡單。畢竟Visual Studio顯示同一級別的所有項目。

.../Project/Project.Web/ 
.../Project/Project.Model/ 
.../Project/Project.DataAccess/ 
.../Project/Project.UnitTest/ 
etc
4

選項2是我的首選。除了其他任何東西,它只是您創建新的類庫項目時的默認值 - 與生產項目位於同一解決方案目錄下。

爲了反駁關於在沒有測試的情況下籤出項目的爭論,我發現僅僅檢出一個項目而不是整個解決方案相對來說比較少見。如果您是「基於項目」而不是「基於解決方案」的商店,那可能會改變一切。

2

測試項目投產旁邊 項目,檢測所「項目」 .Tests 文件夾。我相信這是奧謝羅夫推薦的Roy 。

這是我個人的最愛。它能夠最清楚地表達意圖,並且可以輕鬆一目瞭然地查看哪些測試項目適用於哪些項目(如果您正在目錄中查看它們),還是有理由將項目分組爲單個解決方案。

0

Visual Studio 2010 Asp.Net MVC解決方案中的默認設置是同一解決方案中的不同項目。當涉及到所有引用的測試編譯時,這是一個很大的幫助。

0

我相信選項2是最好的選擇。測試是記錄代碼的好方法。他們明確了方法和類的語義。程序員應該很容易跳到測試代碼中尋找他覺得可疑的某種方法。

另一方面,將測試代碼保存在同一個項目中可能會使編譯後的二進制輸出變大,並強制項目只具有測試代碼所需的依賴關係。

相關問題