溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在docker中使用jacoco的方法

發(fā)布時間:2021-06-18 15:58:47 來源:億速云 閱讀:1170 作者:chen 欄目:編程語言

這篇文章主要介紹“在docker中使用jacoco的方法”,在日常操作中,相信很多人在在docker中使用jacoco的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”在docker中使用jacoco的方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

jacoco一款主流的統(tǒng)計代碼測試覆蓋率的工具,最近研究了下在docker下的用法。

jacoco官網(wǎng)(https://www.jacoco.org),建議大家先看一下官網(wǎng)說明,看完基本就明白怎么用了。我是基于docker和jacoco的0.8.6版本進行搭建的。不基于docker的場景,使用更簡單,不單獨說明了。

1. 把文件打進docker鏡像

既然用docker,就要把jacocoagent.jar打進鏡像,比如我的jacocoagent.jar文件在鏡像的/app/jacoco/jacocoagent.jar目錄下

2. 增加JVM啟動參數(shù)

從jacoco官網(wǎng)(https://www.jacoco.org/jacoco/trunk/doc/agent.html)上,可以看到獲取測試覆蓋率文件分為三種方式,分別是:

  • . 輸出文件,只有當JVM結束時才能生成本地文件

  • .  TCP Socket Server 模式, 通過socket端口連接獲取到測試覆蓋率數(shù)據(jù)

  • .  TCP Socket Client 模式, Jacoco agent會連接到指定的TCP端,請求時執(zhí)行數(shù)據(jù)寫到socket

我采用的 TCP Socket Server模式。需要在JVM啟動時,增加參數(shù):

-javaagent:/app/jacoco/jacocoagent.jar=output=tcpserver,address=0.0.0.0,port=7500

注意:因為是基于docker,所以address需要寫0.0.0.0。  port隨意。

注意在鏡像發(fā)布后,找到該應用的虛擬地址(不是node機器地址),比如我的發(fā)布后是10.2.8.161

3. ANT

在客戶端機器上,安裝ant,配置build.xml。示例如下,注意替換你的ant安裝地址,并把jacocoant.jar復制到對應目錄下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="Jacoco" xmlns:jacoco="antlib:org.jacoco.ant" default="jacoco">   
    <property name="jacocoantPath" value="/usr/local/ant/jacocoant.jar"/>
    <property name="integrationJacocoexecPath" value="./jacoco.exec"/>
    <property name="ip" value=""/>


    <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
      <classpath path="${jacocoantPath}" />
    </taskdef>
    
    <target name="dump">
        <jacoco:dump address="${ip}" port="7500" reset="false" destfile="${integrationJacocoexecPath}" append="true"/>
    </target>
</project>

執(zhí)行命令:ant dump -Dip=10.2.8.161

即可把測試覆蓋率文件jacoco.exec下載下來。

4. 生成HTML

在應用的POM里面增加:

<plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.6</version>
                <configuration>                    
                    <destFile>jacoco.exec</destFile>                    
                    <dataFile>jacoco.exec</dataFile>
                </configuration>
                <executions>
                    <execution>
                        <id>jacoco-initialize</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>jacoco-site</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

把下載的jacoco.exec放到pom平級目錄下。

執(zhí)行report命令

在docker中使用jacoco的方法

然后在target目錄下會有sit子目錄,即為生成的HTML文件,用瀏覽器打開即可。

到此,關于“在docker中使用jacoco的方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI