jacoco生成覆蓋率報告


操作步驟:

1、下載git上最新的代碼到本地

  git clone  {代碼地址}

2、在服務器上打出相關服務的jar包

  1) 登上服務器,切換到目標服務所在路徑:

   cd /xx/xx/xx/xx

  2)maven打包:

   mvn clean package

  3)  打包成功后,當前服務目錄下ls查看會有一個target文件夾;

  4)cd切換到target目錄下,有一個目標服務相關的jar包已經打好;

3、agent模式

  1)本地下載jacoco安裝包,下載地址:https://www.eclemma.org/jacoco/

  2)從jacoco包的lib文件夾中拿到jacocoagent.jar包,上傳到測試服務器(xshell上傳測試服務器命令:rz);

  3)   用agent方式啟動服務(服務器上運行):

  ***   在目標服務jar包的目錄下運行下面命令:

  java -javaagent:{jacocoagent.jar在服務器上的地址}=dumponexit=true,destfile={report1.exec文件在服務器上存放的地址} -jar {xxxx(目標服務打出的jar包).jar}

  4)服務啟動后,執行測試用例,所有的用例執行完成后,停止服務,停止后在對應的目錄可獲得exec文件;

    停服務命令:

    ps -aux | grep  {jar包名.jar}

    kill -9   {進程號}

4、exec文件

  1)從服務器上下載exec文件到本地(xshell從服務器下載文件到本地:sz  文件名)

  2)用IDEA打開git上下載下來的源碼;

  3)  點擊IDEA中Analyze中的Show Code Coverage Data,打開.exec文件,可以看到coverage結果;

5、生成報告

  1)本地安裝ant (http://ant.apache.org/),配置環境變量;

  2)本地新建build.xml文件;

  3)修改xml文件中的一些路徑信息;

【build.xml】  

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project name="Jacoco" xmlns:jacoco="antlib:org.jacoco.ant" default="jacoco">
 3 <!--Jacoco 的安裝路徑-->
 4 <property name="jacocoantPath" value="{xxxxxxxxxx}"/>
 5 <!--最終生成 .exec 文件的路徑,Jacoco 就是根據這個文件生成最終的報告的-->
 6 <property name="jacocoexecPath" value="{xxxxxxxxxxx}"/>
 7 <!--生成覆蓋率報告的路徑-->
 8 <property name="reportfolderPath" value="{xxxxxxxxxxxxxx}"/>
 9 <!--源代碼路徑-->
10 <property name="checkOrderSrcPath" value="{xxxxxxxxxxxxxxxxx}" />
11 <!--.class 文件路徑-->
12 <property name="checkOrderClasspath" value="{xxxxxxx\target\classes}" />
13 
14 <!--讓 ant 知道去哪兒找 Jacoco-->
15 <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
16 <classpath path="${jacocoantPath}" />
17 </taskdef>
18 
19 <!--jacoco 任務:
20 根據前面配置的源代碼路徑和 .class 文件路徑,
21 根據 dump 后,生成的 .exec 文件,生成最終的 html 覆蓋率報告。-->
22 <target name="report">
23 <delete dir="${reportfolderPath}" />
24 <mkdir dir="${reportfolderPath}" />
25 
26 <jacoco:report>
27 <executiondata>
28 <file file="${jacocoexecPath}" />
29 </executiondata>
30 
31 <structure name="JaCoCo Report">
32 <group name="Check Order related"> 
33 <classfiles>
34 <fileset dir="${checkOrderClasspath}">
35 <!-- 過濾不必要的文件 -->
36 <exclude name="**/R.class"/>
37 <exclude name="**/R$*.class"/>
38 <exclude name="**/*$ViewInjector*.*"/>
39 <exclude name="**/BuildConfig.*"/>
40 <exclude name="**/Manifest*.*"/>
41 </fileset>
42 </classfiles>
43 <sourcefiles encoding="UTF-8">
44 <fileset dir="${checkOrderSrcPath}" />
45 </sourcefiles>
46 </group>
47 </structure>
48 <html destdir="${reportfolderPath}" encoding="UTF-8" />
49 <csv destfile="${reportfolderPath}/coverage-report.csv" encoding="UTF-8"/>
50 <xml destfile="${reportfolderPath}/coverage-report.xml" encoding="UTF-8"/> 
51 </jacoco:report>
52 </target>
53 </project>
View Code

 

  4) dos命令切換到build.xml文件所在的地址,執行:

    ant report -buildfile build.xml

  5) 生成的報告在xml文件配置的報告路徑中:

 

 

 

 

操作中遇到的問題和解決方法:

1. 裝好ant並且已經配置好環境變量,dos命令切換到ant安裝路徑,輸入ant

 提示:Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib”

——解決方法:

將jdk中的lib下的toos.jar文件拷貝到 C:\Program Files\Java\jre6\lib下;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM