`
laorer
  • 浏览: 428118 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

<转>Ant开发、测试、部署实例

    博客分类:
  • j2EE
阅读更多

前 言

<o:p>http://www.dingl.com/view.shtml?xh=229</o:p>

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

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

<o:p> </o:p>

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

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

<?xml version="1.0"?><o:p></o:p>

<project name="test" default="upload"><o:p></o:p>

<o:p> </o:p>

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

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

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

   <o:p></o:p>

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

   <target name="create_dir"><o:p></o:p>

       <mkdir dir="${dest_dir}" /><o:p></o:p>

   </target><o:p></o:p>

   <o:p></o:p>

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

   <target name="upload" depends="create_dir"><o:p></o:p>

       <copy todir="${dest_dir}"><o:p></o:p>

          <fileset dir="."><o:p></o:p>

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

          </fileset><o:p></o:p>

       </copy><o:p></o:p>

   </target><o:p></o:p>

<o:p> </o:p>

</project><o:p></o:p>

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

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

 

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看看会怎么样,:)

1.3 ant结合junit进行软件自动测试<o:p></o:p>

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

★ 执行 JUnit 测试<o:p></o:p>

★ 捕获测试结果,将结果记录到 XML 文件或其它格式的文件<o:p></o:p>

★ 将结果转化为基于 XSL 格式的测试报告<o:p></o:p>

★ 将这个报告转化为 HTML 格式<o:p></o:p>

★ 用电子邮件发送报告<o:p></o:p>

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

☆ 测试案例的名称 <o:p></o:p>

☆ 执行的持续时间<o:p></o:p>

☆ 故障或错误的类型(如果适用)<o:p></o:p>

☆ 任何故障或错误的详细信息<o:p></o:p>

2> 本次实例的目录结构:<o:p></o:p>

D:\car   主目录<o:p></o:p>

     \src     源程序目录<o:p></o:p>

     \classes 编译后的class文件目录<o:p></o:p>

     \etc     其他<o:p></o:p>

         \xsl     XSL文件目录<o:p></o:p>

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

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

4> 在src子目录下新建Car.java以及testCar.java文件。<o:p></o:p>

Car.java的内容如下:

//将要被测试的类 <o:p></o:p>

public class Car<o:p></o:p>

{ <o:p></o:p>

    public int getWheels() <o:p></o:p>

    { <o:p></o:p>

        return 3; <o:p></o:p>

    } <o:p></o:p>

}<o:p></o:p>

testCar.java的内容如下:<o:p></o:p>

//执行测试的类<o:p></o:p>

import junit.framework.*; <o:p></o:p>

<o:p> </o:p>

public class testCar extends TestCase <o:p></o:p>

{ <o:p></o:p>

    protected int expectedWheels; <o:p></o:p>

    protected Car myCar; <o:p></o:p>

    <o:p></o:p>

    public testCar(String name) <o:p></o:p>

    { <o:p></o:p>

分享到:
评论

相关推荐

    ejb3+ant开发实例

    在工作之余整理出了基于ejb3的简单企业级开发demo,本实例采用了两个项目来实现(一个客户端和一个服务器端),并且采用ant进行打包、部署,默认采用oracle11g数据库 客户端可以安装到任何java web服务器中(例如...

    ant1.9资源

    &lt;target name="targetA" if="ant.java.version"&gt; &lt;echo message="Java Version: ${ant.java.version}"/&gt; &lt;/target&gt; &lt;target name="targetB" depends="targetA" unless="amigo"&gt; &lt;description&gt; a depend ...

    ANT IN ACTION 第2版 中文版.z01

    本书介绍了如何使用Ant 1.7去构建、测试、部署现代的Java应用程序,进行测试驱动的Java应用开发,本书还覆盖了一些最新式的构建技术,包括库管理、持续整合及自动化部署。本书将向你全面介绍大多数Java项目的核心...

    ANT IN ACTION 第2版 中文版.z02

    本书介绍了如何使用Ant 1.7去构建、测试、部署现代的Java应用程序,进行测试驱动的Java应用开发,本书还覆盖了一些最新式的构建技术,包括库管理、持续整合及自动化部署。本书将向你全面介绍大多数Java项目的核心...

    ant_in_action.pdf(ant 实战)second edtion

    本书介绍了如何使用Ant 1.7去构建、测试、部署现代的Java应用程序,进行测试驱动的Java应用开发,本书还覆盖了一些最新式的构建技术,包括库管理、持续整合及自动化部署。本书将向你全面介绍大多数Java项目的核心...

    Apache ant 1.8.2

    Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。由Apache软件基金会所提供。 有ant 命令,build实例,包内也有json 格式转换个学习资料!

    ant说细中文教程

    ant使用指南详细入门教程 这篇文章主要介绍了ant使用指南详细...ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。在实际软件开发中,有很多地方可以用到ant。

    精通Struts基于MVC的Java Web设计与开发 孙卫琴 光盘

    本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分体会Struts框架在开放大型、可扩展的Web应用方面发挥的优势。第4章到第7章深入探讨了Struts框架的核心...

    精通 Struts:基于 MVC 的 JavaWeb 设计与开发(PDF)

    本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分体会Struts框架在开放大型、可扩展的Web应用方面发挥的优势。第4章到第7章深入探讨了Struts框架的核心...

    基于MVC的java Web设计与开发

    本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分体会Struts框架在开放大型、可扩展的Web应用方面发挥的优势。第4章到第7章深入探讨了Struts框架的核心...

    精通Struts_基于MVC的Java Web设计与开发

    本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分体会Struts框架在开放大型、可扩展的Web应用方面发挥的优势。第4章到第7章深入探讨了Struts框架的核心...

    精通struts:基于mvc的java web设计与开发part3

    本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分体会 Struts框架在开放大型、可扩展的Web应用方面发挥的优势。第4章到第7章深入探讨了Struts框架的核心...

    精通struts:基于mvc的java web设计与开发part2

    本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分体会 Struts框架在开放大型、可扩展的Web应用方面发挥的优势。第4章到第7章深入探讨了Struts框架的核心...

    精通struts:基于mvc的java web设计与开发part1

    本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分体会 Struts框架在开放大型、可扩展的Web应用方面发挥的优势。第4章到第7章深入探讨了Struts框架的核心...

    Apache Ant自动化脚本入门教程及常用命令介绍

    Apache Ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的自动化构建。它是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点: 跨平台性。Ant是纯Java语言...

    iuhyiuhkjh908u0980

    &gt; &lt;project name="demo" default="usage" xmlns:catalina="antlib:org.apache.catalina.ant"&gt; &lt;!--属性配置- ... by mshijie 2009-07-30 回复 (0) [转]使用Ant进行项目构建之二 ... 前面已经把ant的基本运行环境搭建...

    OPhone应用开发权威指南(黄晓庆)

    《OPhone应用开发权威指南》2010 黄晓庆 博文视点 broadview 第1章 OPhone平台概述 1 1.1 OPhone的架构 1 1.1.1 Linux内核 2 1.1.2 本地库 2 1.1.3 OPhone运行环境 3 1.1.4 Widget运行环境 3 1.1.5 应用程序框架 4 ...

    support-examples:支持案例中使用的示例

    如果项目中包含测试客户端,则可以通过ant test运行它。 ###Simple EJB 单例示例 演示如何使用在部署时执行的方法(通过@PostConstruct )创建 EJB 单例。 部署后,您应该会看到如下日志消息: ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.6.1. @Transactional 有关的设置 9.5.7. 插入事务操作 9.5.8. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用 ...

    flex3的cookbook书籍完整版dpf(包含目录)

    编译和部署使用RSL的Flex应用程序 25.6节. 在Flex Builder调试中创建和监视表达式 25.7节. 在Flex Builder中安装Ant窗口 25.8节. 为自动通用任务创建一个Ant构建文件 25.9节. 使用mxmlc和Ant编译Flex应用程序 25.10...

Global site tag (gtag.js) - Google Analytics