亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 >
JCoverage使用簡明手冊
作者:網絡轉載 發布時間:[ 2013/3/14 15:06:21 ] 推薦標簽:

不論TestCase寫的多么的好和完善,要想確保被測試的代碼每一行都被執行,仍然是非常困難的。為了獲取關于這方面的信息,我們可以使用JCoverage。
使用目的

JCoverage正如其名,主要用于代碼的覆蓋測試。通過在被測試類的二進制文件中添加相應的指令,再配合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配合使用,使這一過程自動化。基本用法:

-          編譯被測試類和相應的被測試類的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信息的類。

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

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 欧美在线观看一区 | 日本精品视频一区 | 激情综合五月 | 成人国产精品视频 | 日韩欧美一区二区三区在线 | 美国黄色毛片一级 | 亚洲综合偷自成人网第页色 | 天天操天天干天天摸 | 国产特黄特色a级在线视 | 深夜福利影院在线观看 | 日韩欧美亚洲国产高清在线 | 天堂在线中文网 | 免费久久一级欧美特大黄 | 日韩国产三级 | 99精品免费 | 手机看片1024久久精品你懂的 | 2015小明看日韩成人免费视频 | 日韩二三区 | 欧洲成人r片在线观看 | 亚洲国产精品热久久2022 | 亚洲视频免费观看 | 久久这里只精品99re免费 | 黄 色 免费网 站 成 人 | 亚洲成精品动漫久久精久 | 亚洲国产婷婷综合在线精品 | 黄色香蕉视频网站 | 日本www色视频成人免费网站 | 久久国产精品成人免费 | 中文字幕日韩在线观看 | 99一级毛片 | 日韩在线观看中文字幕 | 91国内在线国内在线播放 | 天天射天天干天天舔 | 野外三级国产在线观看 | 亚洲美女aⅴ久久久91 | 亚洲欧美另类一区 | 欧美一级色视频 | 第一页在线播放 | haose08永久免费视频 | 国产全黄三级国产全黄三级书 | a级大片在线观看 |