将两篇放到一起了.想找 与Junit 和deploy相关的内容,但感觉这个不错,就载过来,给大家共享.相应的页面有Ant理论篇.需要的朋友可以去他的blog上看看.http://tb.blog.csdn.net/TrackBack.aspx?PostId=14018 ...
- 将两篇放到一起了.想找 与Junit 和deploy相关的内容,但感觉这个不错,就载过来,给大家共享
- .............................................................................................
- Ant实战篇 (一)
- 修订者:黄 凯
- E_mail:hk_sz@163.com
- 前 言
- 由于现在公司进行Unit Test Case的整理阶段,所以抽空对Ant和Junit技术进行了一下了解,以下是集合了众家所长之精华(考虑到是按我的思路总结的,也许不能完全表述原作者的思路,所以在参考中我把所有参考过的文章网址或书籍都罗列了出来,大家有时间不妨去看看原文)。
- 如果对Ant部分参数不明白的话,请参看《Ant理论篇》系列或ant自带的文档。
- 目 录
- 一、 Ant使用实例
- 1.1 通过Ant的copt task将当前目录下最近更新的文件(按系统时间来区分)文件提交至指定目录
- 1.2 用Ant开发java程序
- 1.3 ant结合junit进行软件自动测试
- 1.4 ant开发和部署web应用程序
- 1.5 ant打包(jar)应用程序
- 1.6 ant开发EJB应用程序
- Ant使用实例
- 1.1 通过Ant的copt 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:下会出现新的信息。
- Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=14017
- 一、 Ant使用实例
- 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
- srcsrc=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看看会怎么样,:)
- Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=14018
- 一、 Ant使用实例
- 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文件内容如下:
- srcsrc.dir=src
- build.dir=classes
- xsl.dir=etc/xsl
- reportreport.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.html、TESTS-TestSuites.xml和TEST-testCar.xml文件,打开junit-noframes.html查看结果。运行ant clean恢复原状。
- Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=14019
- Ant实战篇 (二)
- 作 者:黄 凯
- E_mail:hk_sz@163.com
- 前 言
- 由于现在公司进行Unit Test Case的整理阶段,所以抽空对Ant和Junit技术进行了一下了解,以下是集合了众家所长之精华(考虑到是按我的思路总结的,也许不能完全表述原作者的思路,所以在参考中我把所有参考过的文章网址或书籍都罗列了出来,大家有时间不妨去看看原文)。
- 如果对Ant部分参数不明白的话,请参看《Ant理论篇》系列或ant自带的文档。
- 在这里要特别感谢我的同事王万鹏为本文档提供demoEJB实例,促使本文档提前完成。同时也要感谢一直以来给以我帮助的葛威龙同事,因为本人英文水准不高,很多不解的地方都得到了他大力的协助。在此特对他们表示衷心的谢意!!!
- 一、 Ant使用实例
- 1.4 ant开发和部署web应用程序
- 1> 前提:
- ★ 完成《JBuilder9+Weblogic7实战篇之Filter运用篇》,因为这是我们这次打包的实例;
- ★ 将Filter整个目录拷贝至D盘,我是用Jbuilder编辑的,所以除classes文件夹和Filter.war文件删除外,其他的保留,我们要用到的相关目录结构如下:
- D:\Filter
- src java源文件目录
- Filter JSP文件及配置文件目录
- WEB-INF 配置文件目录
- 2> 由于不是在Jbuilder环境进行编译,所以需要在CLASSPATH中定义servlet的路径。首先,我们到
- http://java.sun.com/products/servlet/download.html
- 下载
- http://java.sun.com/webapps/download/Redirect/103537442/5847479377282807053505607246086069333228938633594669477228720286350602472859339008063305596058473206-4908/servlet-2_3-fcs-classfiles.zip
- 然后将包含servlet-2_3-fcs-classfiles.zip的整个路径加到CLASSPATH中。
- 3> 在D:\Filter目录下创建build.properties和Filter.xml文件。
- build.properties文件内容如下:
- WebLogic.user_projects.mydomain.applications=C:/bea/user_projects/mydomain/applications
- filter=Filter
- dest=classes.ant
- srcsrc=src
- Filter.xml文件内容如下:
- <?xml version="1.0"?>
- <project default="init" basedir=".">
- <property file="build.properties"/>
- <target name="init" description="initialization">
- <mkdir dir="${dest}" />
- <javac destdir="${dest}">
- <src path="${src}"/>
- </javac>
- </target>
- <target name="war" depends="init">
- <war destfile="Filter.war" webxml="${filter}/WEB-INF/web.xml" compress="false">
- <classes dir="${dest}">
- <include name="**/*.*"/>
- </classes>
- <fileset dir="${filter}">
- <include name="**/*.*"/>
- </fileset>
- </war>
- </target>
- <target name="deploy" depends="war">
- <copy todir="${WebLogic.user_projects.mydomain.applications}">
- <fileset dir="." includes="Filter.war"/>
- </copy>
- </target>
- <target name="rebuild" depends="clean,war">
- <copy todir="${WebLogic.user_projects.mydomain.applications}">
- <fileset dir="." includes="Filter.war"/>
- </copy>
- </target>
- <target name="clean">
- <delete includeEmptyDirs="true">
- <fileset dir="${dest}"/>
- <fileset dir=".">
- <include name="Filter.war"/>
- </fileset>
- <fileset dir="${WebLogic.user_projects.mydomain.applications}">
- <include name="Filter.war"/>
- </fileset>
- </delete>
- </target>
- </project>
- 4> 启动Weblogic server,在D:\Filter目录下运行ant deploy -buildfile Filter.xml进行部署,打开IE,在地址栏输入http://localhost:7001/Filter/login.jsp查看是否能正常运行。然后,你可以修改Filter子目录下的login.jsp文件中的代码,运行ant rebuild -buildfile Filter.xml重新部署,然后刷新http://localhost:7001/Filter/login.jsp查看显示修改后的结果是否正确。
- 5> 以上第3步是将web应用程序通过拷贝到%BEA_HOME%\user_projects\mydomain\applications目录下进行部署的,其实ant提供了对应于Weblogic的发布任务<serverdeploy>。请用下面代码替换掉build.properties和Filter.xml文件中的代码。
- build.properties文件内容如下:
- WebLogic.user_projects.mydomain.applications=C:/bea/user_projects/mydomain/applications
- filter=Filter
- dest=classes.ant
- srcsrc=src
- weblogic.server=C:/bea/weblogic700/server
- username=training
- user.password=training
- weblogic.filter=C:/bea/user_projects/mydomain/myserver/upload/Filter
- Filter.xml文件内容如下:
- <?xml version="1.0"?>
- <project default="init" basedir=".">
- <property file="build.properties"/>
- <target name="init" description="initialization">
- <mkdir dir="${dest}" />
- <javac destdir="${dest}">
- <src path="${src}"/>
- </javac>
- </target>
- <target name="war" depends="init">
- <war destfile="Filter.war" webxml="${filter}/WEB-INF/web.xml" compress="false">
- <classes dir="${dest}">
- <include name="**/*.*"/>
- </classes>
- <fileset dir="${filter}">
- <include name="**/*.*"/>