2009-12-10 71 views
3

我能想到的兩個明顯的地方就是我正在處理的代碼旁邊的某個「測試」文件夾。所以像這樣:我應該在哪裏將我的測試代碼與正在測試的代碼相關聯?

\project-code 
    \my-feature 
     \production-code 
     \testing 
      ***my tests*** 
    \co-workers-feature 
     \production-code 
     \testing 

或者我可以拆分出測試代碼一個完全獨立的層次結構。因此,像:

\project-code 
    \my-feature 
    \co-workers-feature 
\testing-project-code 
    \my-feature 
     ***my tests*** 
    \co-workers-feature 

我已經看到了很多框架使用第二種方法,但最近我們已經把生產代碼中我們的測試代碼,主要是爲了方便。一種方法比另一種更好,還是有最佳做法嗎?

回答

0

如果您的網站是您控制的,那麼將它全部放在同一個文件夾中並不會傷害到它。如果你發佈的是經典的軟件,那麼它往往是一種很好的做法,可以像情況2那樣分離它,這樣你在發佈時就不會意外造成任何膨脹。

2

把它們放在最適合你的地方。如果需要,您可以設置您的構建系統以將其從最終產品中移除。測試是一種「最佳實踐」。任何在不降低其有效性的情況下進行測試都更簡單的方法就是改進最佳實踐。

0

對我來說,第一種選擇更有意義,特別是從SCM的角度來看:生產代碼和測試代碼很好地保持同步(如果他們應該),並且如果您標記或分支項目,在同一時間分支生產和測試代碼(他們應該)。

1

我寧願保持單元測試接近。我已經看到選項1很好。對於一個小型項目來說,兩種方法都可以正常工作,但隨着項目越來越大,當他們生活在樹的非常不同的部分時,很難發現和維護測試。如果它們很接近,那麼當您更改產品代碼時,更改它們將很自然。如果他們很遠,那麼需要更多的精力,而且會被忽略。這意味着他們會失去同步的可能性更大。

請注意,要做到這一點,您需要一個允許條件編譯測試目錄的make系統。你不想每次都建立它們。如果你不能得到那個,可能需要一個單獨的樹。

相關問題