測試 。通過在被測試類的二進制文件中添加相應的指令,再配合 junit ,jcoverage可以給出被測試類的代碼覆蓋率,并" name="description" />

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • JCoverage使用

    發表于:2007-05-05來源:作者:點擊數: 標簽:JCoverage目的使用
    使用目的 JCoverage正如其名,主要用于代碼的覆蓋 java script:;" onClick="javascript:tagshow(event, '%B2%E2%CA%D4');" target="_self"> 測試 。通過在被測試類的二進制文件中添加相應的指令,再配合 junit ,jcoverage可以給出被測試類的代碼覆蓋率,并
    使用目的
    JCoverage正如其名,主要用于代碼的覆蓋javascript:;" onClick="javascript:tagshow(event, '%B2%E2%CA%D4');" target="_self">測試。通過在被測試類的二進制文件中添加相應的指令,再配合junit,jcoverage可以給出被測試類的代碼覆蓋率,并給出測試過程中哪些語句被執行,哪些沒有。通過這些信息,我們可以了解測試代碼的測試質量,以及被測試類中哪些語句需要特別的關注(即那些未被覆蓋的語句)。

    當前的版本是1.0.5,可以從www.jcoverage.com/downloads.html下載。在實際使用時,需要將jcoverage用到的類放到對應的classpath中。在這個版本中它所依賴的外部類以及版本:

    - bcel    5.1     http://jakarta.apache.org/bcel/

    - log4j   1.2.8    http://jakarta.apache.org/log4j/

    - getopt  1.0.9    http://gnu.org/

    - oro     2.0.7   http://jakarta.apache.org/oro/



    用法
    1.       jcoverage可以和ant配合使用,使這一過程自動化?;居梅ǎ?BR>
    -          編譯被測試類和相應的被測試類的junit代碼。

    -          使用<instrument>,將jcoverage的指令加入到被測試類的二進制文件中。為了保證這一過程能夠有效,請在編譯被測試類時,設置<javac>的debug屬性設為yes。

    -          執行junit代碼進行代碼覆蓋測試。這一步需要注意的是,需要將被注入指令的測試類要早于單元測試所需的測試類裝入。為了確保這一點,需要使用<classpath>,使注入指令的測試類位于測試類之前。

    -          使用<report>產生覆蓋測試的報告。

    2.       使用例子:

    <!-- 采用debug模式編譯被測試類 -->

    <javac destdir="${dist.coverage.classes}" deprecation="on" debug="yes">

    <src path="${src.code}"/>

        <classpath refid="classpath"/>

    </javac>

    <!-- 編譯被測試類的junit代碼 -->

    <javac destdir="${dist.coverage.junit}" deprecation="on">

        <src path="${src.junit}"/>

        <classpath refid="classpath"/>

    </javac>

    <!-- 定義jcoverage任務 -->

    <path id="jcoverage">

            <fileset dir="junit_lib">

                   <include name="jcoverage.jar"/>

            </fileset>

        </path>

    <taskdef classpathref="jcoverage" resource="tasks.properties"/>

    <!-- 給被測試類二進制代碼中注入jcoverage的指令 -->

    <instrument todir="${dist.coverage.instrument}">

            <classpath refid="classpath"/>

        <!-- 忽略org.apache.common的應用 -->

        <ignore regex="org.apache.common.*"/>



        <fileset dir="${dist.coverage.classes} ">

            <include name="**/*.class"/>

        </fileset>

    </instrument>

    <!-- 啟動junit,進行代碼覆蓋測試 -->

    <junit printsummary="yes" haltonfailure="no" fork="yes">

        <classpath>

            <!-- 注意:被注入指令的類,位置在測試類之前。

    這樣確保它們早于測試類備加載,使指令起作用。 -->

            <pathelement location="${dist.coverage.instrument}"/>

            <path refid="classpath"/>

            <pathelement location="${dist. coverage.junit}"/>

        </classpath>



        <formatter type="xml"/>



            <batchtest todir="${doc.jcoverageReport}">

             <fileset dir="${src.junit}" includes="**/*Test.java" />

         </batchtest>

    </junit>

    <!-- 產生代碼覆蓋測試報告 -->

    <report srcdir="${src.code}" destdir="${doc.jcoverageReport}">

    3.       jcoverage提供的ant任務標簽有:

    -          <instrument>,在類的二進制文件中注入jcoverage指令。注意:一定是debug模式下編譯的類。

    -          <report>,產生jcoverage報告,默認格式是HTML。也可以產生XML格式方便應用客戶自定義的xslt產生其他格式的報告。產生XML格式的報告:

    <report srcdir="${src.code}" destdir="${doc.jcoverageReport}" format="xml">

    -          <merge>,整合多個由jcoverage產生的輸出文件。整個jcoverage實際的運作過程是:首先,jcoverage給測試類注入指令產生新類,被注入指令的類在junit運行過程中產生輸出文件(后綴為ser),最后根據輸出文件產生報告。如果有多個輸出文件,jcoverage提供了<merge>來整合這些文件,最后,從整合文件中產生整體報告。用法:

    <merge>

    <fileset dir="${basedir}">

    <include name="**/jcoverage.ser"/>

    </fileset>

    </merge>

    -          <check>,檢查測試是否達到設定的標準,它可以和<report>配合使用。使用例子:

    例1  :

    <check branch="95" line="95"/>,意思是分支覆蓋率需要達到95%,行覆蓋率達到95%。

    例2   

    <check branch="95" line="95">

        <regex pattern="xptoolkit.jcoverage.*" branch="85" line="95"/>

    </check>

    包名符合xptoolkit.jcoverage.*模式的分支覆蓋率達到85%,行覆蓋率達到95%其余的分支覆蓋率需要達到95%,行覆蓋率達到95%。

    檢查表
           在使用jcoverage時需要注意的問題:

    -          被jcoverage注入指令的類必須是在debug模式下編譯的類。建議將那些使用debug模式編譯的類的存放與最終的產品的目錄分開。

    -          使用了<instrument>的類,與源類的目錄也最好分開。

    -          對于那些使用了AOP(如AspectJ)技術的項目,jcoverage不能很好的應用到那些已經添加了Aspect信息的類。

    -          代碼覆蓋工具只是給出了指導性的意見,不要過分依賴和相信它的結果。

    原文轉自:http://www.kjueaiud.com

    ...

    熱門標簽

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>