簡體   English   中英

命名螞蟻目標的最佳做法是什么?

[英]What are the best practices for naming ant targets?

命名螞蟻目標的最佳做法是什么?

例如,您希望目標“測試”運行什么? 所有單元測試? 所有功能測試? 都?

用於運行不同類型的測試(單元/功能/全部)的標准名稱是什么? 是否有用於在J2SE中部署軟件的目標名稱的標准? 在J2EE中?

我的項目將ant用於具有junit,Swing應用程序和J2EE應用程序的Java項目。

請參閱此頁上的“命名約定”部分螞蟻樣式的元素

以下目標是許多版本的共同目標。 始終避免更改眾所周知的目標名稱的行為。 您無需在單個項目中實現所有這些功能。

all               Build and test everything; create a distribution, optionally install. 
clean             Delete all generated files and directories. 
deploy            Deploy the code, usually to a remote server. 
dist              Produce the distributables. 
distclean         Clean up the distribution files only. 
docs              Generate all documentation. 
init              Initialize the build: create directories, call <tstamp> and other common actions. 
install           Perform a local installation. 
javadocs          Generate the Javadoc pages. 
printerdocs       Generate printable documents. 
test              Run the unit tests. 
uninstall         Remove a local installation. 

此頁面還提供其他良好指導。

對於我的Java項目,我使用Maven默認生命周期中定義的名稱作為基礎。 對於其他項目,我也使用了GNU autoconf標准目標

有一種標准被合理地廣泛使用。 不能從命令行調用以-字符開頭的任何目標名稱,因此,肯定是一個不能直接執行的目標名稱。 有時,這被稱為隱藏目標

只要它們在您的整個項目中都是可理解的且一致的,您就可以將它們命名為您。 簡單,簡短的動詞通常是規范,目標應在邏輯上分解。

您可以按照Matt B建議的路線,按類型命名測試目標:

  • 測試單位
  • 測試功能
  • 全部測試

或者,例如,如果您具有Junit,Selenium和Webtest功能測試,則可以按工具命名:

  • 測試准
  • 測試硒
  • 測試網絡測試
  • 全部測試

如果對要向任何開發項目的人員公開的目標使用description屬性,則用戶可以執行ant -p列出可用目標並選擇所需的目標。 與目標的實際名稱相比,此處的有用描述對於用戶而言可能更重要,也更有價值。

螞蟻手冊

可選的description屬性可用於提供此目標的單行描述,該描述由-projecthelp命令行選項打印。 除非使用-verbose或-debug選項,否則沒有這種描述的目標將被視為內部目標,並且不會列出。

我們在簡短而簡明的目標名稱(使用依賴於其他單個任務的名稱)方面取得了良好的經驗。 AFAIK的通用標准集是

  • 在里面
  • 清潔
  • 編譯
  • dist
  • 測試
  • 報告

(雖然找不到鏈接)

對我們來說效果很好。

當我們必須區分測試類型時,我們將它們分別命名為“ test.data”和“ test.nondata”以分離測試類型,“測試”任務將它們分別作為依賴。 也許您應該按照另一個用戶的建議使用“ java方法命名約定”,但是恕我直言,沒關系。

如果您是在本地計算機上手動運行ant腳本(我會測試是否破壞了構建腳本),那么只需輸入以下內容便會派上用場

ant dist
ant test report

代替

ant compile create.distribution
ant test.data test.nondata report.junit.generate report .....

我認為這完全是個人喜好,但我會使用

  • test -用於單元測試
  • test-integration -用於集成測試
  • dbtest用於數據庫測試(如果它們包含在上面的項目中)
  • test-all以運行以上所有內容

另外,我對使用test或復數形式tests ,我可能在不同的項目上都做過。

ant目標的命名約定應與Java方法的命名約定非常相似:即,簡單地描述目標的作用。

這是來自Sun標准的方法命名摘錄:

命名方法

盡管方法名稱可以是任何合法標識符,但是代碼約定限制了方法名稱。 按照慣例,方法名稱應為小寫的動詞或以小寫的動詞開頭的多詞名稱,其后是形容詞,名詞等。在多詞名稱中,第二個單詞及其后每個單詞的第一個字母應該大寫。 這里有些例子:

 run runFast getBackground getFinalData compareTo setX isEmpty 

可能最大的區別在於ant目標的樣式,它應該是所有小寫字母,單詞之間用破折號隔開。

例如,以下目標對我來說似乎很合適:

  • run-all-tests
  • build
  • clean
  • test-and-release
  • deploy
  • run-code-coverage-metrics

最后,嘗試使用與命名方法時相同的判斷。 如果您的目標清晰,描述性強並且易於理解,那么您的狀態就很好。

有關該主題的更多詳細信息,請查看Ant Wiki上的Ant 風格元素

暫無
暫無

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

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