国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ant+cactus+tomcat5.5容器內單元測試

2019-11-18 12:54:05
字體:
來源:轉載
供稿:網友

一、下載并解壓縮cactus
下載地址為http://java.chinaitlab.com/tools/45970.Html 。將cactus的lib目錄下的cactus-ant-1.7.1.jar復制到ant的lib目錄。


二、配置cactus
cactus的配置很簡單,新建一個cactus.PRoperties文件,并把它放在ant腳本中的cactus任務的classpath下,文件中包括如下內容

cactus.sysproperties=cactus.contextURL
#cactus-sample-servlet-cactified就是你的測試應用所在路徑,8080是端口號
cactus.contextURL = http://localhost:8080/cactus-sample-servlet-cactified
cactus.servletReDirectorName = ServletRedirector
cactus.jspRedirectorName = JspRedirector
cactus.filterRedirectorName = FilterRedirector

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

三、運行ant腳本
  ant腳本主要執行以下任務

1、設定classpath
<path id="project.classpath">
        <fileset dir="${lib.dir}">
           <include name="*.jar"/>
        </fileset>
        <!-- cactus.properties文件就需要放在lib.dir所對應的路徑中 -->
        <pathelement location="${lib.dir}"/>
        <pathelement location="${tomcat.home}/common/lib/jsp-api.jar"/>
        <pathelement location="${tomcat.home}/common/lib/servlet-api.jar"/>
    </path>
2、定義相關任務
<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、編譯應用的類文件和測試的類文件

4、打包整個應用為war文件
需要注重的是,不僅要打包應用類,測試類也要打包
<target name="war" depends="compile.java"
            descr
        <war warfile="${target.dir}/${project.name}.war"
             web
xml="${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}"/>
            <!-- 別忘了打包各種相關的jar文件 -->
            < lib dir="project.classpath"/>
        </war>
    </target>

5、在應用的web.xml文件中添加測試所需的各種映射
cactus提供了兩個task來完成這個工作,CactifyWar和WebXmlMerge。
CactifyWar的功能是自動在已經打包的應用的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是通過復制容器服務器的最小文件并運行來運行測試,因此需要制定容器服務器的類型,啟動速度稍快點,另外配置比較方便,但是無法測試象tomcat連接池等資源。另外對tomcat5.5的支持也不好。
"RunServerTests"是通過直接啟動容器服務起來運行測試,因此速度稍慢,且配置較麻煩,但能測試各種資源。
<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是服務器的端口號,${project.name}-cactified是項目的路徑,和上一步的cactifywar 的destfile相對應 -->
        <runservertests
                testURL="http://localhost:8080/${project.name}-cactified/ServletRedirector?Cactus_Service=RUN_TEST"
                startTarget="_StartTomcat"
                stopTarget="_StopTomcat"
                testTarget="_Test"/>

    </target>

<!-- _Test就是一個普通的junit任務 -->
    <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>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杭锦后旗| 中卫市| 浮梁县| 山阳县| 隆尧县| 湄潭县| 广德县| 潢川县| 荆门市| 突泉县| 舒兰市| 磐石市| 广西| 峨边| 宜川县| 汝南县| 清徐县| 宁南县| 舒兰市| 宜昌市| 都兰县| 鄢陵县| 叶城县| 舒城县| 桂东县| 基隆市| 太湖县| 孝感市| 新泰市| 永寿县| 山阳县| 武胜县| 大新县| 湖北省| 兴安盟| 许昌市| 田阳县| 余庆县| 礼泉县| 千阳县| 荥经县|