操作步驟:
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>
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下;