`
changhui_liang
  • 浏览: 16184 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ant执行Junit

阅读更多
Apache Ant简介

简单的讲,Ant是一个命令行工具,可以用来编译java文件,执行java程序,生成jar文件,执行测试等。

具体参见http://ant.apache.org/

1.Ant的配置

(1)下载Ant

http://ant.apache.org/bindownload.cgi

下载解压后放在某路径下,例如:C:\apache-ant-1.8.2

(2)配置环境变量

追加系统环境变量:“ANT_HOME”,值:“C:\apache-ant-1.8.2”

在系统环境变量“Path”里追加“C:\apache-ant-1.8.2\bin”

(3)验证配置是否正确

在命令行输入“ant -version”

如果显示“Apache Ant(TM) version 1.8.2 compiled on December 20 2010”,说明正确

2.创建build.xml文件

用XML编写,至少包含一个project和一个target.

以下面这个build.xml为例说明

主要任务:

(1)正式source文件(src目录下)和Junit测试(test目录下)文件可以分别编译。

(2)生成jar文件,并且不包含测试文件。

(3)通过ant执行Junit测试,生成测试报告。

编写思路:

(1)根据上述任务,至少需要编写4个target

target1:compile,编译正式source文件

target2:testcomplile,编译test文件

target3:make-jar,生成jar文件

target4:runtests,执行junit测试

(2)辅助target

target5:JUNIT,执行Junit测试需要此target支持

target6:apidocs,生成javaDoc

target7:rmi-compile,编译RMI相关文件(工程中涉及到了RMI通信内容)。

特别说明:test目录下的测试文件与src的source文件是一一对应的,包结构完全一致。

主要目录结构

myproject
├─bin
├─config
├─image
├─lib
├─log
├─src
│  └─AAA
│      └─BBB
│          └─CCC
└─test
    └─AAA
        └─BBB
            └─CCC
               

----------------------------------------file start-------------------------------------------

<?xml version="1.0" encoding="Shift_JIS"?>

<!-- project tag
name   :工程名字
default:默认执行的target
basedir:ant执行的根目录-->
<project name="myproject" default="runtests" basedir=".">
<!-- source路径 -->
<property name="src.dir" value="src" />

<!-- 编译后class路径 -->
<property name="build.dir" value="classes" />

<!-- JavaDoc路径 -->
<property name="build.apidocs" value="${build.dir}/doc" />

<!-- 测试source路径
  test.dir   : JUnit执行路径
-->
<property name="testSrc.dir" value="test" />

<!-- test报告路径 -->
<property name="reports.dir" value="./doc/report" />

<!-- test结果统计路径 -->
<property name="correctreports.dir" value="${reports.dir}/html" />

<!-- target tag
  name         :target名字
  depends    :依赖target,先执行被依赖的target.
  description:target描述
-->
<target name="JUNIT">
     <available property="junit.present" classname="junit.framework.TestCase" />
</target>

<target name="compile" depends="JUNIT">
     <mkdir dir="${build.dir}"/>
  <depend srcdir="${src.dir}" destdir="${build.classes}"/>
  <javac srcdir="${src.dir}" destdir="${build.classes}">
   <classpath>
    <pathelement path="${build.classes}"/>
    <pathelement path="${java.class.path}/"/>
   </classpath>
   <include name="**/*.java"/>
  </javac>
</target>


<target name="testcompile" depends="compile">
  <depend srcdir="${testSrc.dir}" destdir="${build.classes}"/>

<!-- test class文件与正式class文件,输出到同一目录下

也就是说正式source和测试source的原文件(java文件)不同目录,但编译后的class文件同目录。

-->
  <javac srcdir="${testSrc.dir}" destdir="${build.classes}" fork="true" memoryMaximumSize="512m">
   <compilerarg value="-Xlint:unchecked"/>
   <classpath>
    <pathelement path="${build.classes}"/>
    <pathelement path="${java.class.path}/"/>
    <fileset dir="lib">
     <include name="*.jar"/>
    </fileset>
   </classpath>
   <include name="**/*.java"/>
  </javac>
</target>


<target name="rmi-compile" depends="compile">
  <rmic base="${build.classes}" verify="true">
   <classpath>
    <pathelement path="${build.classes}"/>
    <pathelement path="${java.class.path}/"/>
   </classpath>
   <include name="**/*.class"/>
   <exclude name="**/test/*.class"/>
  </rmic>
</target>

<target name="runtests" depends="testcompile">
  <delete>
   <fileset dir="${reports.dir}" includes="**/*" />
  </delete>
  <mkdir dir="${reports.dir}"/>

  <junit printsummary="on" failureProperty="fail">
   <classpath>
    <pathelement location="lib/***.jar" />
    <pathelement location="lib/***.jar" />
    <pathelement path="${build.classes}"/>
    <pathelement path="${java.class.path}/"/>
   </classpath>
  
   <formatter type="xml"/>

   <batchtest fork="yes" todir="${reports.dir}">
    <fileset dir="${src.dir}">
     <!-- 只执行test CLASS -->
     <include name="${test.dir}**/*Test.java" />
    </fileset>
   </batchtest>
  </junit>

  <junitreport todir="${reports.dir}">
   <fileset dir="${reports.dir}">
    <include name="TEST-*.xml"/>
   </fileset>

   <report format="frames" todir="${correctreports.dir}"/>
  </junitreport>
</target>

<!-- JavaDoc生成 -->
<target name="apidocs" depends="compile" description="JavaDoc生成">
  <javadoc sourcepath="${src.dir}" destdir="${build.apidocs}"
   packagenames="AAA.BBB.CCC.*"
   author="true"
   version="true"
   notree="true"
   nonavbar="true"
   noindex="true"
   windowtitle="MyProject API"
   doctitle="Regulation"
   public="true"
  />
</target>

<!-- Jar生成 -->
<target name="make-jar" depends="rmi-compile" description="Jar生成">
  <delete file="myproject.jar"/>
  <jar jarfile="myproject.jar" manifest="MANIFEST.MF">
   <fileset dir="classes">

<!--除去test文件-->
    <exclude name="**/test/"/>
   </fileset>
  </jar>
</target>
</project>

--------------------------------------file end----------------------------------------------

3.执行build.xml

将build.xml放到myproject工程的根目录下。

控制台切换到myproject工程的根目录“C:\myproject”:

(1)编译正式source

C:\myproject>ant comlile

(2)编译测试文件

C:\myproject>ant testcompile

(3)生成jar文件,并且不包含测试文件。

C:\myproject>ant make-jar

(4)通过ant执行Junit测试,生成测试报告。

C:\myproject>ant runtest

分享到:
评论

相关推荐

    ANT执行junit

    **Ant执行JUnit** Apache Ant,一个Java库和命令行工具,其任务是驱动构建过程。它是Java项目的主要构建工具之一,以其灵活性和可扩展性而闻名。JUnit,则是Java编程语言中最广泛使用的单元测试框架,它允许开发...

    ant-junit-1.6.5.jar.zip

    "ant-junit-1.6.5.jar"是Ant对JUnit支持的库文件,它包含了Ant执行JUnit测试所需的类和方法。这个JAR文件让Ant能够调用JUnit,并在构建过程中运行测试。在build.xml文件中,可以配置JUnit任务(&lt;junit&gt;),指定测试...

    eclipse下利用ant、junit进行自动化测试例子源码

    当ANT执行测试时,JUnit会运行所有的测试用例,并报告测试结果。 6. **源码分析**:压缩包中的"testAntJunit"文件可能是包含了一个示例项目,这个项目演示了如何在Eclipse中设置ANT脚本和JUnit测试。通过查看源码,...

    ANT&JUNIT中文手册

    通过Ant,你可以设定一系列构建规则,包括编译源代码、执行测试、打包应用等,而JUnit则在每个开发周期中为你的代码提供快速反馈,确保每个单元都按预期工作。 在实际项目中,开发者通常会利用Ant的classpath元素...

    ant-junit-1.7.0.jar.zip

    《Ant与JUnit结合:ant-junit-1.7.0.jar.zip详解》 在软件开发过程中,测试是不可或缺的一环,而JUnit作为Java语言中最常用的单元测试框架,为开发者提供了便利。同样,Apache Ant作为一款强大的构建工具,帮助...

    ant+junit教程

    在Java开发过程中,Ant和JUnit是两个非常重要的工具。Ant是一个构建工具,它允许开发者自动化构建、测试和部署Java项目,而JUnit则是一个单元测试框架,用于编写和运行可重复的测试用例,确保代码质量。这个“ant+...

    ant-junit4.jar.zip

    通过Ant-junit4.jar,我们可以让Ant自动执行JUnit4测试,生成测试报告,并将测试结果集成到构建流程中,确保代码的质量。 要使用ant-junit4.jar,首先需要将其解压,获取ant-junit4.jar文件。然后在Ant的lib目录下...

    ant-junit-1.6.1.jar.zip

    《Ant与JUnit结合:ant-junit-1.6.1.jar.zip详解》 在软件开发过程中,测试是不可或缺的一环,而JUnit作为Java语言中最常用的单元测试框架,为开发者提供了便利。同样,Apache Ant作为自动化构建工具,对于项目管理...

    Maven2.Ant.Junit合集

    Ant的核心概念是任务(Tasks),它们是Ant执行的具体操作。例如,`javac`任务用于编译Java源代码,`jar`任务用于创建JAR文件。Ant强调可配置性和可扩展性,可以适应各种项目的需求。 2. **JUnit**: JUnit是Java...

    Ant与Junit结合

    标题“Ant与JUnit结合”指的是在Java开发中如何利用Apache Ant构建工具与JUnit测试框架进行集成,以便自动化地运行单元测试。Apache Ant是一种基于XML的构建工具,它替代了传统的Makefile,为Java项目提供了构建、...

    7_ant_junit和ant的整合(非常重要)

    在IT行业中,Ant和JUnit是两个非常...通过这种方式,Ant和JUnit的整合使得开发者能够在构建过程中轻松地执行和监控测试,从而提高开发效率和代码质量。理解并熟练运用这种整合对于任何Java开发团队来说都是非常重要的。

    Ant 使用Junit进行单元测试

    通过Ant执行`test`目标后,Ant会自动调用JUnit运行测试,并将结果输出到控制台或指定的报告文件中。如果测试失败,Ant会显示错误信息,帮助开发者定位问题。 在实际项目中,我们可能还需要配置测试结果的XML输出,...

    Apache Ant 与Junit 对Java工程联合测试DEMO

    在与JUnit结合使用时,Ant可以在构建过程中自动执行测试,并生成测试报告。在配置`junit`任务时,你需要指定测试类或包含测试的类路径,还可以设置如失败时是否中断构建等选项。例如: ```xml &lt;junit ...

    ant-junit.jar.zip

    这个JAR文件包含了Ant对JUnit的支持,使得Ant能够执行JUnit测试并获取测试结果。在构建过程中,开发者可以使用Ant的junit任务来调用这个库,从而在构建脚本中集成单元测试。 具体使用时,开发者需要在Ant的类路径中...

    ant-junit-1.8.1.jar.zip

    标题中的"ant-junit-1.8.1.jar.zip"是一个压缩文件,它包含了与Apache Ant和JUnit相关的组件。这个文件特别的是版本号为1.8.1,这表明它是2009年发布的一个较旧但仍然广泛使用的版本。在IT领域,Ant和JUnit是两个...

    Ant+Junit+SVN的安装过程

    Ant的灵活性在于,你可以根据项目需求定制自己的构建流程,通过定义不同的目标(target)来执行特定的任务。 JUnit是一个流行的Java单元测试框架,它为开发者提供了一种结构化的编写测试代码的方式。开发者只需要按照...

    一个使用ant及junit进行单元测试的简单例子

    总结来说,本示例展示了如何使用Apache Ant管理和执行Java项目的单元测试,结合JUnit进行测试用例的编写。通过Ant的XML配置文件,我们可以自动化测试过程,提高开发效率,确保代码质量。同时,通过属性文件可以方便...

    ant-junit-1.6.3.jar.zip

    2. **集成测试环境**:将JUnit集成到Ant中,可以在构建流程中自动执行测试,确保代码质量。 3. **详细的测试报告**:JUnit可以生成XML或HTML格式的测试报告,方便查看测试结果。 4. **灵活的配置**:通过XML配置,...

    ant-junit-1.6.2.jar.zip

    首先,"ant-junit-1.6.2.jar"是Ant与JUnit的一个集成版本,它包含了用于在Ant构建脚本中执行JUnit测试的类和库。这个版本对应于JUnit 4.x系列,是JUnit 4.6到4.8之间的某个稳定版本,因为JUnit 5是在1.6.2之后发布的...

Global site tag (gtag.js) - Google Analytics