ANT安装、配置- -| 回首页 | 2004年索引 | - -Ant实战篇2

Ant实战篇- -

                                      

 

Ant实战篇 (一)

                                                                             修订者:黄 凯        

E_mail:hk_sz@163.com

前 言

由于现在公司进行Unit Test Case的整理阶段,所以抽空对Ant和Junit技术进行了一下了解,以下是集合了众家所长之精华(考虑到是按我的思路总结的,也许不能完全表述原作者的思路,所以在参考中我把所有参考过的文章网址或书籍都罗列了出来,大家有时间不妨去看看原文)。

如果对Ant部分参数不明白的话,请参看《Ant理论篇》系列或ant自带的文档。

 

目 录

一、 Ant使用实例

   1.1 通过Antcopt task将当前目录下最近更新的文件(按系统时间来区分)文件提交至指定目录

   1.2 用Ant开发java程序

    1.3 ant结合junit进行软件自动测试

    1.4 ant开发和部署web应用程序

    1.5 ant打包(jar应用程序

    1.6 ant开发EJB应用程序

参考

 

一、 Ant使用实例

1.1 通过Antcopt task将当前目录下最近更新的文件(按系统时间来区分)文件提交至指定目录

1> 前提:在D盘下创建两个文件夹test1和test2,并在test1中创建build.xml文件,内容如下:

<?xml version="1.0"?>

<project name="test" default="upload">

 

   <!-- 设置提交的根路径以及提交目录属性 -->

   <property name="dest_drive" value="D:\" />

   <property name="dest_dir" value="${dest_drive}\test2\test" />

  

   <!-- 如果没有提交目录的话,创建提交目录 -->

   <target name="create_dir">

       <mkdir dir="${dest_dir}" />

   </target>

  

   <!-- 通过copy task提交当前目录下除build.xml外所有非临时文件 -->

   <target name="upload" depends="create_dir">

       <copy todir="${dest_dir}">

          <fileset dir=".">

             <exclude name="**\build.xml"/>

          </fileset>

       </copy>

   </target>

 

</project>

2>进入DOS命令行状态,运行D:\test1>ant。进入test2中进行检查,看是否已经建立好了test子目录并且将test1中的文件除build.xml外都已经提交过来。如果这时你再运行ant,会发现其没有任何操作提示,因为已经没有新文件需要提交了。

注:有兴趣的朋友不妨将其中一个文件更新一下再执行一次,你会发现upload:下会出现新的信息。

 

 


作者Blog:http://blog.csdn.net/kanaima/
 
1.2 用Ant开发java程序,以HelloWord为例
1> 本次实例的目录结构:
D:\test 主目录
 \src  源程序目录
 \classes 编译后的class文件目录
首先在D盘创建test目录和src子目录。
2> 在src子目录下创建HelloWord.java文件,内容如下:
public class HelloWord
{
    public static void main(String args[])
    {
        System.out.println("Hello World!");
    }
}
3> 在test主目录下创建build.xml文件,内容如下:
<?xml version="1.0"?>
<project default="build" basedir=".">

   <property name="appname" value="HelloWord" />
   <property name="base" value="D:\test" />
   <property name="src" value="src" />
   <property name="build" value="classes" />
   <property name="myclasspath" value="${base}\${build}" />

   <target name="build">
       <mkdir dir="${build}" />
       <javac srcdir="${src}" destdir="${build}">
           <include name="**/*.java" />
       </javac>
   </target>

   <target name="run" depends="build">
       <exec executable="java">
           <arg line=" -classpath ${myclasspath} ${appname}" />
       </exec>
   </target>

   <target name="clean">
       <delete includeEmptyDirs="true">
           <fileset dir="${build}" />
       </delete>
   </target>

</project>
为了提高程序的可移植性,我们将property分离出来组成build.properties文件。新的build.xml文件和build.properties文件内容如下:
build.properties文件:
appname=HelloWord
src=src
build=classes
myclasspath=${basedir}\\${build}
build.xml文件(property部分通过file调用build.properties即可):
<?xml version="1.0"?>
<project default="build" basedir=".">
 
   <property file="build.properties" />

   <target name="build">
       <mkdir dir="${build}" />
       <javac srcdir="${src}" destdir="${build}">
           <include name="**/*.java" />
       </javac>
   </target>

   <target name="run" depends="build">
       <exec executable="java">
           <arg line=" -classpath ${myclasspath} ${appname}" />
       </exec>
   </target>

   <target name="clean">
       <delete includeEmptyDirs="true">
           <fileset dir="${build}" />
       </delete>
   </target>

</project>
4> 在test目录下运行ant查看执行结果。
再运行ant run和ant clean看看会怎么样,:)

 


作者Blog:http://blog.csdn.net/kanaima/
 
 
 

1.3 ant结合junit进行软件自动测试

1> 用ant结合junit启动基本编译和测试的自动过程如下:

★ 执行 JUnit 测试

★ 捕获测试结果,将结果记录到 XML 文件或其它格式的文件

★ 将结果转化为基于 XSL 格式的测试报告

★ 将这个报告转化为 HTML 格式

★ 用电子邮件发送报告

     一旦捕获结果,就可以使用XML格式化器将每个测试套件运行的故障和错误数,连同软件包和类名还有测试套件的执行时间一起引入。对于每个测试套件,都有以下信息被捕获:

☆ 测试案例的名称

☆ 执行的持续时间

☆ 故障或错误的类型(如果适用)

☆ 任何故障或错误的详细信息

2> 本次实例的目录结构:

D:\car   主目录

     \src     源程序目录

     \classes 编译后的class文件目录

     \etc     其他

         \xsl     XSL文件目录

首先在D盘创建car目录、src子目录和etc子目录,并从%ANT_HOME%\etc下拷贝junit-noframes.xsl文件至D:\car\etc\xsl子目录下。

3> 从http://download.sourceforge.net/junit/junit3.8.zip下载,解压至D盘,将其目录下的junit.jar文件拷贝至%ANT_HOME%\lib目录下。

4> 在src子目录下新建Car.java以及testCar.java文件。

Car.java的内容如下:

//将要被测试的类

public class Car

{

    public int getWheels()

    {

        return 3;

    }

}

testCar.java的内容如下:

//执行测试的类

import junit.framework.*;

 

public class testCar extends TestCase

{

    protected int expectedWheels;

    protected Car myCar;

   

    public testCar(String name)

    {

        super(name);

    }

   

    protected void setUp()

    {

        expectedWheels = 4;

        myCar = new Car();

    }

   

    public static Test suite()

    {

        return new TestSuite(testCar.class);

    }

   

    public void testGetWheels()

    {

        assertEquals(expectedWheels, myCar.getWheels());

    }

}

5> 在build.xml和build.properties文件。

buil.properties文件内容如下:

src.dir=src

build.dir=classes

xsl.dir=etc/xsl

report.dir=report

build.xml文件内容如下:

<?xml version="1.0"?>
<project default="build" basedir=".">
 
    <property file="build.properties" description="Transfer property from .properties file"/>

    <target name="build" description="Build the work directory">
        <mkdir dir="${build.dir}" />
        <mkdir dir="${report.dir}" />
        <javac srcdir="${src.dir}" destdir="${build.dir}">
            <include name="**/*.java" />
        </javac>
    </target>
  
   <target name="junit" depends="build"  description="Execute Unit Tests">
        <tstamp/>
  <junit printsummary="yes">
   <classpath>
       <pathelement location="${build.dir}"/>
     </classpath>

        <formatter type="xml" />
      <batchtest todir="${report.dir}">
         <fileset dir="${src.dir}">
            <include name="**/testCar.java" />
       </fileset>
        </batchtest>
     </junit>

     <junitreport todir="${report.dir}">
        <fileset dir="${report.dir}">
          <include name="TEST-*.xml"/>
        </fileset>
        <report format="noframes" styledir="${xsl.dir}" todir="${report.dir}"/>
     </junitreport>
    </target>

 <target name="clean" description="Delete the work directory">
     <delete includeEmptyDirs="true">
            <fileset dir="${build.dir}"/>
            <fileset dir="${report.dir}"/>
       </delete>
   </target>

</project>

6> 在D:\car目录下运行ant junit

这样在car\report中生成了junit-noframes.htmlTESTS-TestSuites.xmlTEST-testCar.xml文件,打开junit-noframes.html查看结果。运行ant clean恢复原状。

 

 


 

- 作者: neitbe 2004年09月7日, 星期二 15:20

Trackback

你可以使用这个链接引用该篇日志 http://publishblog.blogdriver.com/blog/tb.b?diaryID=314882

回复

评论内容: