文章关键字:|Ant JUnit Task|扩展|Java|XML|格式|方式|配置|
了解 Ant JUnit
Apache Ant 是一个基于 Java 的 build 工具,它使用 XML 来配置命令 (Task) 。 Ant 提供了非常丰富的预定义命令,所以在大多数的情况下,开发者只需要使用 Ant 自带的命令就能完成绝大多数的功能。但如果在某些特定的情况下,为了让 Ant 能够实现一些额外的功能,开发者可以扩展预定义的命令,或者自行开发新的命令。而 Ant 的设计者也充分考虑了这一点,易扩展的 Ant 体系使得这个工作也变得非常轻松。
和 Ant 一样,JUnit 也是一个非常流行的工具,在单元测试领域几乎是事实上的工业标准。几乎所有的开发工具都对 JUnit 有很好的支持,当然 Ant 也不例外。 Ant 为 JUnit 提供了一个命令 (JUnit Task),能够让开发者轻松的指定被测试的类、输出格式和运行方式等。清单 1 是一个典型的 Ant JUnit 配置。
清单 1 一个标准 Ant JUnit 的例子
<target name="test" depends="compile" description="Execute the unit test">
<mkdir dir="${report.dir}"/>
<property name="cases" value="*Test"/>
<junit printsummary="yes" fork="yes" jvm="${fvt.java.home}/bin/java">
<classpath refid="classpath"/>
<formatter type="plain" usefile="false"/>
<formatter type="xml"/>
<!--<test name="${example.ut.test}" todir="${report.dir}"/>-->
<batchtest todir="${report.dir}">
<fileset dir="${src.dir}">
<patternset>
<include name="**/feature1*.java" />
<include name="**/testcase?.java" />
</patternset>
</fileset>
</batchtest>
</junit>
<target>
在清单 1 的这个 Ant XML 中,请注意到 <batchtest> 中可以包含 <fileset> 等表示的文件集合,可以把 <batchtest> 理解成为一个执行测试用例的容器,只要把测试用例的集合送给它,它就能够不折不扣的去执行所有的测试用例。另外还可以看到 Ant 除了支持常用的通配符 (wildcard)* 和 ? 之外,还支持一个任意匹配的符号 ** 。通过这几个通配符的组合使用,Ant JUnit 能够满足大多数单元测试的需要。但是在某些特定的实际项目中,默认的 Ant JUnit 命令可能无法满足要求。让我们看看下面的工程。
实际项目的需求
图 1 一个单元测试项目的需求
在图 1 的这个工程中,有两个不同的产品 product 和 product2 。两个产品各自有不同的 feature,在每个 feature 中还包括不同级别 (level) 的单元测试 TestCaseLX 。在实际的测试中,我们很有可能灵活的选择要测试的 feature 和级别。比如星期一,我们要选择 feature1 和 feature3,需要运行所有的级别,但是星期二我们就要运行所有的 L1 的测试用例。
未完,原文地址:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9269
分享到:
相关推荐
ANT Junit Task扩展是开发者社区的一个重要贡献,它旨在增强ANT构建工具中Junit任务的功能。这个开源项目的核心目标是将JUnit测试结果与Java文档(Javadoc)信息整合在一起,以便于开发人员更好地理解测试用例的目的...
2. 任务(Task):Ant通过一系列的任务执行构建过程,如`<javac>`编译Java源码,`<jar>`打包为JAR文件,`<copy>`复制文件等。 3. 目标(Target):目标是一系列任务的集合,通常表示一个特定的构建阶段,如`compile`...
Ant允许开发者通过继承`org.apache.tools.ant.Task`类或`org.apache.tools.ant.UnknownElement`类来创建自己的任务。这些自定义任务可以扩展Ant的功能,满足特定项目需求。例如,你可以创建一个任务来执行特定的...
8. **插件支持**:Ant 可以通过扩展机制添加第三方插件,增强其功能,如 Ivy 用于依赖管理,Maven 转换任务等。 这两个工具在Java开发中的结合使用,使得开发流程更加高效。通过Ant自动编译代码,运行JUnit测试,...
这些任务可以是内置的,如编译Java代码(javac task)、复制文件(copy task)或运行测试(junit task),也可以是用户自定义的任务。Ant的XML配置文件,通常命名为build.xml,定义了整个构建过程的步骤和依赖关系。...
ANT(Apache Ant)是一个Java平台上的自动化构建工具,它以其灵活性和可扩展性在软件开发过程中广泛使用。ANT的核心概念是基于XML的构建文件,这个文件定义了一系列任务(tasks),用于编译、打包、测试和部署项目。...
1. **基本概念与架构**:理解Ant的基本组件,如项目(Project)、目标(Target)、任务(Task)和属性(Property)。这些概念构成了Ant构建文件的基础结构。 2. **任务(Tasks)**:Ant通过任务来执行实际的工作,...
Ant的核心在于其XML格式的构建文件——build.xml,书中详细介绍了如何编写这个文件,包括定义项目(project)、目标(target)、任务(task)以及属性(property)。此外,还深入探讨了Ant的依赖关系管理、条件语句...
除了内置任务,开发者可以通过实现 `Task` 接口创建自己的任务,这使得 Ant 能够处理几乎任何类型的构建需求。XML 配置文件的结构清晰,使得多人协作变得容易,也方便自动化工具的集成。 总之,Ant 是 Java 开发中...
5. **Ant的扩展性** - **自定义任务**:可以通过实现Ant Task接口创建自己的任务,以满足特定需求。 - **第三方插件**:许多第三方库提供了Ant任务,如Maven的Ant Tasks,方便在Ant中调用Maven的功能。 6. **实际...
除了基本任务,Ant还有许多内置的贡献任务,例如用于处理资源文件的`<filter>`,用于执行JUnit测试的`<junit>`,以及用于部署应用程序的`<war>`任务。这些任务极大地扩展了Ant的功能,使其能够覆盖开发周期的各个...
标签"java"表明Ant主要与Java开发相关,但Ant也适用于其他语言的项目,因为它的任务系统可以扩展。通过使用Ant贡献的库或自定义任务,你可以处理C++、Python等语言的构建需求。 Ant的一个重要特性是依赖性管理。它...
一个基本的Ant脚本包含项目(Project)、目标(Target)和任务(Task)元素。项目定义了整个构建的上下文,目标是一系列任务的集合,任务则是实际执行的动作。 四、Ant的依赖关系 在Ant中,目标之间可以设置依赖...
在Ant中,任务(Task)是构建过程的基本单元,它们通过实现特定的Task接口来执行不同的操作。XML配置文件中的目标(Target)定义了一组按顺序执行的任务,形成了构建流程的逻辑结构。例如,一个简单的Ant构建文件...
Ant的主要优势在于其灵活性和可扩展性,它允许开发者通过自定义任务或扩展现有任务来满足特定的构建需求。此外,Ant支持多种外部工具,例如JDK、Javadoc、JUnit等,使得整个构建过程更加集成和高效。 在"压缩包子...
开发者可以通过实现Task接口创建自定义任务,或者使用已存在的任务库(如Ant-Contrib)来扩展默认功能。 4. **条件语句**:Ant 1.8.0提供了条件语句,如`<if>`和`<unless>`,这使得构建脚本可以依据特定条件执行或...
- **可扩展性**:Ant允许添加自定义任务,包括内置任务、可选任务和用户自定义任务。 - **可集成性**:Ant可以方便地集成到开发环境,如Eclipse、IntelliJ IDEA等。 3. **Ant构建文件结构** - **标签**:每个...
Ant的核心概念是任务(Task),这些任务是可执行的操作单元,比如编译源代码、打包JAR文件、运行测试等。在Ant 1.6版本中,已经包含了丰富的内置任务,覆盖了开发流程中的大部分需求。用户可以通过编写build.xml文件...
Ant的核心概念是任务(Task),这些任务可以是简单的文件操作,也可以是复杂的构建逻辑,如编译源代码、打包JAR、运行测试等。 在Ant的构建文件中,通常命名为build.xml,它定义了一系列的目标(Target)和任务。...
3. 任务(Task):任务是Ant的最小执行单元,如`<javac>`用于编译Java源码,`<copy>`用于复制文件,`<jar>`用于打包成JAR文件等。 二、Ant的主要功能 1. 编译:Ant可以自动编译Java源代码,并且支持多种编译器,如...