<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ant+cactus+tomcat5.5容器內(nèi)單元測試簡明手冊

    摘要:

    折騰了一個星期,終于搞定ant+cactus+tomcat5.5容器內(nèi)單元測試,為感謝cleverpig斑竹的熱心回貼,特首發(fā)于matrix apache版。
    折騰了一個星期,終于搞定ant+cactus+tomcat5.5容器內(nèi)單元測試,為感謝cleverpig斑竹(http://blog.matrix.org.cn/page/cleverpig)的熱心回貼,特首發(fā)于matrix apache版。關(guān)于ant的使用,請搜索ant的使用手冊,網(wǎng)上大把中文的。

    一、下載并解壓縮cactus
    下載地址為http://apache.freelamp.com/jakarta/cactus/binaries/jakarta-cactus-12-1.7.1.zip。將cactus的lib目錄下的cactus-ant-1.7.1.jar復(fù)制到ant的lib目錄。


    二、配置cactus
    cactus的配置很簡單,新建一個cactus.properties文件,并把它放在ant腳本中的cactus任務(wù)的classpath下,文件中包括如下內(nèi)容
    cactus.sysproperties=cactus.contextURL
    #cactus-sample-servlet-cactified就是你的測試應(yīng)用所在路徑,8080是端口號
    cactus.contextURL = http://localhost:8080/cactus-sample-servlet-cactified
    cactus.servletRedirectorName = ServletRedirector
    cactus.jspRedirectorName = JspRedirector
    cactus.filterRedirectorName = FilterRedirector

    具體的做法結(jié)合ant腳本再進一步解釋。

    三、運行ant腳本
    ??ant腳本主要執(zhí)行以下任務(wù)

    1、設(shè)定classpath
    ????
    <path id="project.classpath">
    ????????<fileset dir="${lib.dir}">
    ?????????? <include name="*.jar"/>
    ????????</fileset>
    ????????<!-- cactus.properties文件就需要放在lib.dir所對應(yīng)的路徑中 -->
    ????????<pathelement location="${lib.dir}"/>
    ????????<pathelement location="${tomcat.home}/common/lib/jsp-api.jar"/>
    ????????<pathelement location="${tomcat.home}/common/lib/servlet-api.jar"/>
    ????</path>


    2、定義相關(guān)任務(wù)
    ??
    <taskdef resource="cactus.tasks" classpathref="project.classpath"/>
    ?? <taskdef name="runservertests" classname="org.apache.cactus.integration.ant.RunServerTestsTask">
    ????????????<classpath>
    ????????????????<path refid="project.classpath"/>
    ????????????</classpath>
    ????????</taskdef>


    3、編譯應(yīng)用的類文件和測試的類文件

    4、打包整個應(yīng)用為war文件
    需要注意的是,不僅要打包應(yīng)用類,測試類也要打包
    ??
    ??
    <target name="war" depends="compile.java"
    ????????????description="Generate the runtime war">

    ????????<war warfile="${target.dir}/${project.name}.war"
    ???????????? webxml="${src.webapp.dir}/WEB-INF/web.xml">
    ????????????<fileset dir="${src.webapp.dir}">
    ????????????????<exclude name="cactus-report.xsl"/>
    ????????????????<exclude name="WEB-INF/cactus-web.xml"/>
    ????????????????<exclude name="WEB-INF/web.xml"/>
    ????????????</fileset>
    ????????????<classes dir="${target.classes.java.dir}"/>
    ????????????<!-- 別忘了打包測試類 -->
    ????????????<classes dir="${target.classes.test.dir}"/>
    ????????????<!-- 別忘了打包各種相關(guān)的jar文件 -->
    ????????????< lib dir="project.classpath"/>
    ????????</war>
    ????</target>


    5、在應(yīng)用的web.xml文件中添加測試所需的各種映射
    cactus提供了兩個task來完成這個工作,CactifyWar和WebXmlMerge。
    CactifyWar的功能是自動在已經(jīng)打包的應(yīng)用的web.xml文件中添加所需的映射。WebXmlMerge是提供合并兩個web.xml文件的功能。
    <target name="test.prepare"
    ????????????depends="war, compile.cactus, test.prepare.logging">

    ????????<!-- Cactify the web-app archive -->
    ????????<cactifywar srcfile="${target.dir}/${project.name}.war"
    ????????????????????destfile="${tomcat.home}/webapps/${project.name}-cactified.war"
    ????????????????>
    ????????????<classes dir="${target.classes.java.dir}"/>
    ????????????<classes dir="${target.classes.test.dir}"/>
    ????????????<lib dir="project.classpath"/>
    ?????? </cactifywar>
    </target>


    6、運行測試
    cactus提供了cactus和RunServerTests兩個task來運行測試。
    "cactus" task是通過復(fù)制容器服務(wù)器的最小文件并運行來運行測試,因此需要制定容器服務(wù)器的類型,啟動速度稍快點,另外配置比較方便,但是無法測試象tomcat連接池等資源。另外對tomcat5.5的支持也不好。
    "RunServerTests"是通過直接啟動容器服務(wù)起來運行測試,因此速度稍慢,且配置較麻煩,但能測試各種資源。
    ??
    <target name="test" depends="test.prepare"
    ???????????? description="Run tests on Tomcat ">

    ????????<!-- Start the servlet engine, wait for it to be started, run the
    ???????????? unit tests, stop the servlet engine, wait for it to be stopped.
    ???????????? The servlet engine is stopped if the tests fail for any reason -->
    ????????<!-- 8080是服務(wù)器的端口號,${project.name}-cactified是項目的路徑,和上一步的cactifywar 的destfile相對應(yīng) -->
    ????????<runservertests
    ????????????????testURL="http://localhost:8080/${project.name}-cactified/ServletRedirector?Cactus_Service=RUN_TEST"
    ????????????????startTarget="_StartTomcat"
    ????????????????stopTarget="_StopTomcat"
    ????????????????testTarget="_Test"/>

    ????</target>

    ????
    ????
    <!-- _Test就是一個普通的junit任務(wù) -->
    ????<target name="_Test">
    ????????<junit printsummary="yes" fork="yes">
    ????????????<classpath>
    ????????????????<path refid="project.classpath"/>
    ????????????????<pathelement location="${target.classes.java.dir}"/>
    ????????????????<pathelement location="${target.classes.test.dir}"/>
    ????????????</classpath>
    ????????????<formatter type="brief" usefile="false"/>
    ????????????<formatter type="xml"/>

    ????????????<batchtest>
    ????????????????<fileset dir="${src.test.dir}">
    ????????????????????<!-- Due to some Cactus synchronization bug, the 'unit' tests need
    ??????????????to run before the 'sample' tests -->
    ????????????????????<include name="**/Test*.java"/>
    ????????????????????<exclude name="**/Test*All.java"/>
    ????????????????</fileset>
    ????????????</batchtest>
    ????????</junit>
    ????</target>


    posted on 2006-06-12 11:48 nbt 閱讀(234) 評論(0)  編輯  收藏 所屬分類: Java2EE

    <2006年6月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    Java技術(shù)網(wǎng)站

    友情鏈接

    國內(nèi)一些開源網(wǎng)站

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 在线免费观看a级片| 亚洲精品自产拍在线观看| 无忧传媒视频免费观看入口| 久久精品国产精品亚洲下载 | a毛片久久免费观看| 亚洲视频日韩视频| 国产男女猛烈无遮挡免费视频网站| 一级做a爰全过程免费视频毛片| 久久久无码精品亚洲日韩京东传媒 | 亚洲欧洲在线播放| 免费jjzz在线播放国产| 一级毛片不卡片免费观看| 相泽南亚洲一区二区在线播放| 国产精品亚洲精品日韩已满| 久久不见久久见中文字幕免费| 一级毛片在线播放免费| 亚洲喷奶水中文字幕电影| 中文字幕亚洲一区二区va在线| 在线观看免费人成视频色9| 中文字幕av免费专区| 在线亚洲高清揄拍自拍一品区| 亚洲中文字幕无码日韩| 99视频在线精品免费观看6| a级毛片在线视频免费观看| 亚洲国产日韩a在线播放| 亚洲综合精品一二三区在线 | 亚洲色欲色欲www在线丝| 嫩草影院在线免费观看| 2019中文字幕免费电影在线播放| 国产亚洲精品成人久久网站 | a级片在线免费看| 豆国产96在线|亚洲| 亚洲福利一区二区精品秒拍| 亚洲中文字幕不卡无码| 热99re久久免费视精品频软件 | 亚洲五月综合缴情在线观看| 日韩视频免费一区二区三区| 免费在线观看h片| 久久99热精品免费观看牛牛| 国产久爱免费精品视频 | 国产亚洲成在线播放va|