您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 >
JCoverage使用
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/12/20 15:23:44 ] 推薦標(biāo)簽:

使用目的
JCoverage正如其名,主要用于代碼的覆蓋測(cè)試。通過(guò)在被測(cè)試類的二進(jìn)制文件中添加相應(yīng)的指令,再配合junit,jcoverage可以給出被測(cè)試類的代碼覆蓋率,并給出測(cè)試過(guò)程中哪些語(yǔ)句被執(zhí)行,哪些沒(méi)有。通過(guò)這些信息,我們可以了解測(cè)試代碼的測(cè)試質(zhì)量,以及被測(cè)試類中哪些語(yǔ)句需要特別的關(guān)注(即那些未被覆蓋的語(yǔ)句)。

當(dāng)前的版本是1.0.5,可以從www.jcoverage.com/downloads.html下載。在實(shí)際使用時(shí),需要將jcoverage用到的類放到對(duì)應(yīng)的classpath中。在這個(gè)版本中它所依賴的外部類以及版本:

- 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配合使用,使這一過(guò)程自動(dòng)化。基本用法:

-          編譯被測(cè)試類和相應(yīng)的被測(cè)試類的junit代碼。

-          使用<instrument>,將jcoverage的指令加入到被測(cè)試類的二進(jìn)制文件中。為了保證這一過(guò)程能夠有效,請(qǐng)?jiān)诰幾g被測(cè)試類時(shí),設(shè)置<javac>的debug屬性設(shè)為yes。

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

-          使用<report>產(chǎn)生覆蓋測(cè)試的報(bào)告。

2.       使用例子:

<!-- 采用debug模式編譯被測(cè)試類 -->

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

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

    <classpath refid="classpath"/>

</javac>

<!-- 編譯被測(cè)試類的junit代碼 -->

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

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

    <classpath refid="classpath"/>

</javac>

<!-- 定義jcoverage任務(wù) -->

<path id="jcoverage">

        <fileset dir="junit_lib">

               <include name="jcoverage.jar"/>

        </fileset>

    </path>

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

<!-- 給被測(cè)試類二進(jìn)制代碼中注入jcoverage的指令 -->

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

        <classpath refid="classpath"/>

    <!-- 忽略org.apache.common的應(yīng)用 -->

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

 

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

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

    </fileset>

</instrument>

<!-- 啟動(dòng)junit,進(jìn)行代碼覆蓋測(cè)試 -->

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

    <classpath>

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

這樣確保它們?cè)缬跍y(cè)試類備加載,使指令起作用。 -->

上一頁(yè)12下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd