日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JUnit+EclEmma进行覆盖测试

發布時間:2024/1/23 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JUnit+EclEmma进行覆盖测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

EclEmma簡介

現在IT開發人員比以往任何時候都更加關注測試的重要性,沒有經過良好測試的代碼更容易出問題。在極限編程中,測試驅動開發已經被證明是一種有效提高軟件質量的方法。在測試驅動的開發方式中,軟件工程師在編寫功能代碼之前首先編寫測試代碼,這樣能從最開始保證程序代碼的正確性,并且能夠在程序的每次演進時進行自動的回歸測試。測試對于軟件產品的成敗起著至關重要的作用,在極限編程領域,甚至有人提議任何未經測試的代碼都應該自動從發布的產品中刪除。作者并不確信這個觀點是正確的,但是測試本身的質量確實是一個需要高度關注的問題。測試的覆蓋率是測試質量的一個重要指標,我們需要工具來幫助我們進行對軟件測試覆蓋的考察。

EclEmma就是這樣一個能幫助開發人員考察測試覆蓋率的優秀的Eclipse開源插件。EclEmma在覆蓋測試領域是如此的優秀,以致于它在過去不久的2006年成為了EclipseCommunityAwardsWinners決賽選手。雖然最后EclipseCheckstylePlugin取得了BestOpenSourceEclipse-basedDevelopertool的稱號,但我們也可以由此看到EclEmma對開發人員的幫助是巨大的(EclipseCommunityAward的具體信息可以參閱參考資源)。

提到EclEmma首先就要說到著名的Java覆蓋測試工具Emma。Emma是一個在SourceForge上進行的開源項目(參閱參考資源)。從某種程度上說,EclEmma可以看作是Emma的一個圖形界面。在本文的參考文獻中,可以看到專門講述使用Emma的技術文章。

Emma的作者開發Emma之初,程序員已經有了各種各樣優秀的開源Java開發工具。舉例來說,我們有優秀的集成開發環境Eclipse,有開源的JDK,有單元測試工具JUnit,有Ant這樣的項目管理工具,還可以用CVS或SubVersion來進行源代碼版本的維護。當時看來,也許唯一缺少的就是一個開源的覆蓋測試工具了。Emma就是為了填補這項空白而生的。現在的情況已經和Emma誕生的時候不一樣的。時至今日,已經有了不少的覆蓋測試工具。例如Coverlipse是一個基于Eclipse的覆蓋測試插件。其他還有Cobertura、Quilt和JCoverage等。但是Emma具有一些非常優秀的特性使得它更適合被廣泛的使用。和Coverlipse等工具比起來,Emma是開源的,同時它對應用程序執行速度的影響非常小。

EclEmma的出現彌補了Emma用戶一個大的遺憾——缺乏圖形界面以及對集成開發環境的支持。將Eclipse和Emma這兩個在各自領域最為優秀的工具結合起來,這就是EclEmma為我們提供的。接下來,一起看看EclEmma為開發人員提供了什么。

4.4.2? 添加EclEmma支持

????? 在官方網站http://sourceforge.net/projects/eclemma/ 下載EclEmma壓縮包。

圖1 EclEmma壓縮包

????? 解壓eclemma-2.3.3.zip文件,得到plugins文件夾和features文件夾。

圖2 ?解壓ZIP文件

? ? ?將解壓后的文件,拷貝到MyEclipse安裝目錄下的dropins即可, ? ?運行MyEclipse(如果已經運行,請重啟MyEclipse),即可集成EclEmma成功。

筆者發現該方法,是最好的方法,比在線安裝和本地逐個文件夾拷貝要好了N多倍!!!!

在項目右鍵,出現如下所示的"Coverage as表示已經成功了",或者工具欄出現快捷圖標也是成功了。

?

/******************************下面是針對成績判斷做的JUnit+EclEmma的綜合測試案例******************************/

package com.aaa.vo; /*** 成績類;* @author 張晨光老師 */ public class Grade {public String getLevel(int score){String result="";if(score<60){result="不及格";}else if(score<70){result="及格";}else if(score<80){result="中等";}else if(score<90){result="良好";}else if(score<=100){result="優秀";}return result;} }

?

package com.aaa.test; /**測試類* @author 張晨光老師*/ import java.util.Scanner; import junit.framework.TestCase; import com.aaa.vo.Grade; public class TestGrade extends TestCase {//1.私有對象;Grade grade=new Grade();//public void testGetLevel(){int x;System.out.println("請輸出一個數字");Scanner sc=new Scanner(System.in);x=sc.nextInt();assertEquals("及格",grade.getLevel(x));} }

然后在項目,點擊右鍵選擇"Coverage as"-->Junit Test,這時候出來控制臺界面,需要用戶輸入數字

?

?

?

Cpverage 界面如圖所示:

Grade類的覆蓋測試圖:

?TestGrade類的覆蓋測試圖:

在Coverage 視圖界面,選擇導出,以網頁報表的格式導出。

?

總結

以上是生活随笔為你收集整理的JUnit+EclEmma进行覆盖测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。