1、將cobertura的路徑設置到path中
2、將要測試的源代碼,編譯之後的字節碼文件和所需要的jar包拷貝到一個單獨的目錄中做處理(直接進入Eclipse的工作空間進行拷貝)
習慣將lib/src兩個文件放到bin中,目錄結構如下圖:
3、在命令提示符中使用命令爲要生成測試覆蓋率報告的代碼生成一個ser的文件
3.1、生成cobertura.ser文件
將目錄切換到我們上一步放置文件的目錄:
執行如下命令:
cobertura-instrument --destination instrumented com/lxh/service
如下圖:
生成如下的目錄結構:
4、基於ser文件運行測試
4.1、
java -cp lib/cobertura-2.1.1.jar;lib/hamcrest-all-1.3.jar;lib/junit.jar;lib/mysql-connector-java-5.1.21.jar;lib/org.hamcrest.core_1.3.0.jar;lib/slf4j-api-1.7.5.jar;instrumented;.;-Dnet.sourceforge.cobertura.datafile=cobertura.ser
org.junit.runner.JUnitCore com.lxh.service.TestUserService
注:-cp命令後面跟的jar包,是lib目錄中的所有必需jar包
5、根據ser文件生成測試覆蓋率的報告
特別注意:如果文件的編碼是utf-8的,在生成報告前需要爲cobertura-report.bat文件增加DfileEncoding的處理
生成測試覆蓋率的報告命令如下:
cobertura-report --format html --datafile cobertura.ser --destination reports src
完成上面的步驟後,我們的測試報告生成完畢,如下圖:
點擊index.html即可查看報告:
從圖中就可以看到我們測試案例覆蓋情況,標紅的代碼表示測試案例未覆蓋到區域。。