命名蚂蚁目标的最佳做法是什么?

时间:2008-12-04 21:18:57

标签: java ant naming-conventions

命名蚂蚁目标的最佳做法是什么?

例如,您希望目标“test”能够运行什么?所有单元测试?所有功能测试?既?

用于运行不同类型的测试(单位/功能/全部)的标准名称是什么?是否有目标名称标准在J2SE中部署软件?在J2EE?

我的项目使用ant作为带有junit,Swing应用程序和J2EE应用程序的java项目。

7 个答案:

答案 0 :(得分:13)

请参阅此页面上的"Naming Conventions" sectionThe Elements of Ant Style

  

以下目标对于许多构建是通用的。总是避免改变   众所周知的目标名称的行为。您不需要实施   所有这些都在一个项目中。

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. 

此页面还提供了其他良好指导。

答案 1 :(得分:6)

对于我的java项目,我使用maven default lifecycle中定义的名称作为基础。 对于其他项目,我也使用了GNU autoconf standard targets

答案 2 :(得分:3)

有一个标准被广泛使用。无法从命令行调用以 - 字符开头的任何目标名称,因此必须是不打算直接执行的目标名称。有时,这被称为hidden target

答案 3 :(得分:2)

只要它们在您的项目中是可以理解和一致的,您的名字取决于您。简单,简短的动词通常是常态,目标应该在逻辑上被打破。

您可以选择Matt B建议的路线,按类型命名您的测试目标:

  • 测试单元
  • 测试官能
  • 测试所有

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

  • 测试的junit
  • 测试硒
  • 测试WebTest的
  • 测试所有

如果您对要向构建项目的任何人公开的目标使用description属性,则用户可以执行ant -p列出可用目标并选择他们想要的目标。对于用户而言,有用的描述可能比实际命名的目标更重要,更有价值。

来自Ant Manual

  

可选的description属性可以   用于提供单行   这个目标的描述,是   由-projecthelp打印   命令行选项。目标没有   这种描述被认为是内部的   除非另有说明,否则不会列出   使用-verbose或-debug选项。

答案 4 :(得分:2)

我们使用依赖于其他单个任务的简短目标名称获得了良好的体验。 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 .....

答案 5 :(得分:1)

我认为这完全是个人偏好的一点,但我会使用

  • test - 用于单元测试
  • test-integration - 用于集成测试
  • dbtest - 用于数据库测试(如果它们包含在上面的项目中)
  • test-all运行以上所有

此外,我对使用test或复数形式tests不可知,我可能在不同的项目中都做过。

答案 6 :(得分:1)

ant目标的命名约定应该与Java方法的命名约定非常相似:即,简单描述目标的作用。

以下摘自Sun standard for method naming

  

命名方法

     

虽然是方法名称   可以是任何合法的标识符,代码   约定限制方法名称。通过   约定,方法名称应为a   小写的动词或多字的名字   以小写的动词开头,   其次是形容词,名词等   多字的名字,第一个字母   每个第二个和下一个词   应该大写。这里有一些   示例:

run
runFast
getBackground
getFinalData
compareTo
setX
isEmpty

最大的区别可能是蚂蚁目标的样式,它应该是所有较低的套装字母,单词用短划线分隔。

例如,以下目标似乎适合我:

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

最后,尝试使用命名方法时使用的相同的良好判断。如果您的目标清晰,具有描述性且易于理解,那么您的目标就很好。

有关该主题的更多详细信息,请查看Ant wiki上的The Elements of Ant Style