2011-06-08 68 views
1

這個問題是關於您的經驗和行業最佳實踐。 請評論我做了什麼,看看它是否使感覺。讓我知道你是如何處理同樣的問題如何組織jUnit測試分別覆蓋包和整個程序?

當我寫我的測試時,我通常一次專注於包。 src中的每個類都有自己的測試類。生活很好。對於給定的包,我想出了一個負責運行包中所有測試的類。例如(A.java),看起來像這樣:

@RunWith(Suite.class) 
@Suite.SuiteClasses({ One.class, Two.class, Three.class }) 
public class _A { 

} 

關注1:這引入了用於運行包中的所有測試加1級。

關注點2:我的傾向是先於類以下劃線(以確保它顯示在上面Understore(有人告訴我),是一個不好的味道..

問題:創建一個單獨的測試類來測試給定的包是否很常見?

上面顯示的模式對每個包都重複使用對於每個包中的/ test,我有一個_Package {x} Tests.java

另外,a T下面/測試的根目錄下,我有所有的測試類,其中包括所有組件的母親測試

/test 
    _ApplicationTests.class 

@RunWith(Suite.class) 
@Suite.SuiteClasses({ _A.class, _B.class, _C.class }) 
public class _ApplicationTests { 

} 

關注1:我真的寧願避免違約的包,但在同一時間,我很喜歡看「第一測試,顯示了」作爲主測試文件

關注點2:同樣(ⅰ必須閱讀這某處..)MasterTests類以下劃線開始(爲了一致性我客串

你們如何處理這件事?我所描述的是一種可接受的方法嗎?

對我個人來說,我非常喜歡有一個選項可以分別運行「所有測試」和「所有軟件包測試」的想法。

謝謝,請讓我知道。

+0

你在用什麼IDE?在Eclipse中,您可以指定應測試哪些軟件包(單個測試,所有測試)。我通常只運行選定的測試,並讓構建自動化執行每一個測試。 你需要套房的任何東西或只是方便嗎? – oers 2011-06-09 14:14:59

+0

我使用Eclipse。你如何指定運行的測試?全部/包?原因是方便。我真的很喜歡能夠技術,無論是一次或一個包 – JAM 2011-06-09 14:24:59

回答

2

如果您使用Eclipse,您可以右鍵單擊測試包並在其中運行所有測試。

如果你使用的是maven和surefire/failsafe,你可以使用-Dtest=com.package.*(它比Eclipse更強大,因爲你可以從嵌套包層次結構的頂部開始)指定包。 Ant可能有類似的選擇。

任何一種方法都意味着您不需要定製的@Suite類。

+0

謝謝,這個工程。出於某種原因,明顯的解決方案總是從我身邊逃脫Shift-Alt-X,T運行jUnit很好,乾淨,沒有任何@Suite類 – JAM 2011-06-09 15:43:50

+0

是的,這是一個很酷的功能。現在他們需要擴展它以允許您選擇多個包並運行所有包。 – artbristol 2011-06-09 15:49:40