Java單元測(cè)試覆蓋率分析,并同步至Sonar

前提:已配置SonarQube環(huán)境

一、簡(jiǎn)介

Jacoco是一個(gè)開(kāi)源的Java代碼覆蓋率工具,可以嵌入到maven、ant中。
能幫助測(cè)試人員直觀的了解測(cè)試覆蓋情況。

二、生成代碼覆蓋率數(shù)據(jù)

方法一:在pom.xml中配置

只需在pom.xml文件中加上Jacoco插件,以后每次執(zhí)行mvn install即可生成代碼覆蓋率數(shù)據(jù):

#pom.xml中配置插件
<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.7.8</version>
    <executions>
        <execution>
            <goals>
                <goal>prepare-agent</goal>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

然后執(zhí)行mvn clean install;
在"/target"目錄中生成jacoco.exec文件就代表覆蓋率數(shù)據(jù)生成成功。
訪問(wèn)"/target/site/jacoco/index.html",即可查看代碼覆蓋率報(bào)告。

方法二:通過(guò)命令指定插件

若不想修改pom.xml文件,也可以通過(guò)maven的參數(shù)去指定使用Jacoco插件:
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true
效果與方法一一致。

三、將數(shù)據(jù)同步至SonarQube

以上步驟中生成的.exec文件就包含了該項(xiàng)目的代碼覆蓋率數(shù)據(jù)。要想在SonarQube平臺(tái)上展示代碼覆蓋率數(shù)據(jù),就需要該.exec文件。
上傳的方式很簡(jiǎn)單,同樣利用maven的sonar插件即可實(shí)現(xiàn)。

1. 在maven中配置SonarQube的信息

打開(kāi)"maven安裝目錄/conf/settings.xml",在<profiles></profiles>標(biāo)簽中增加以下配置信息(安照實(shí)際情況填寫(xiě)url、賬號(hào)等):

<profile>
   <id>sonar</id>
   <activation>
       <activeByDefault>true</activeByDefault>
   </activation>
   <properties>
        <sonar.jdbc.url>
        jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&amp;characterEncoding=utf8
        </sonar.jdbc.url>
        <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
       <sonar.host.url>http://127.0.0.1:8090</sonar.host.url>
       <sonar.login>admin</sonar.login>
       <sonar.password>admin</sonar.password>
   </properties>
</profile>
2. 在項(xiàng)目pom.xml中配置sonar插件
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>2.6</version>
</plugin>

3. 執(zhí)行mvn sonar:sonar即可。

該命令會(huì)先執(zhí)行靜態(tài)掃描,并將掃描的結(jié)果和代碼覆蓋率數(shù)據(jù)(即jacoco.exec)一起上傳至SonarQube平臺(tái)。

==備注==:和jacoco插件一樣,若不想修改pom,xml文件,可以用mvn org.codehaus.mojo:sonar-maven-plugin:2.4:sonar命令代替2、3兩步操作。
(需要注意的是,sonar插件的版本選擇與SonarQube版本有關(guān),若不兼容,會(huì)有相關(guān)的報(bào)錯(cuò)提示)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 基于 jacoco 的功能測(cè)試代碼覆蓋率實(shí)踐 1.1 目前主流代碼覆蓋率統(tǒng)計(jì)工具 考慮到方案實(shí)施的難度很大取...
    WellDo閱讀 20,529評(píng)論 1 4
  • 教程:https://www.yiibai.com/jenkins/ 本節(jié)內(nèi)容: Jenkins介紹 安裝部署Je...
    達(dá)微閱讀 9,094評(píng)論 2 77
  • Java Jacoco Ant Maven 針對(duì) Jacoco[http://www.eclemma.org/ja...
    納愛(ài)斯閱讀 54,073評(píng)論 64 52
  • 我多想, 朱紅的唇, 觸摸你光潔的額頭, 告訴你我淺而濃厚的感情。 我多想, 寬闊的臂膀, 擁抱你單薄的衣襟, 浮...
    看海的星星閱讀 401評(píng)論 9 7
  • 只有深度才能看透本質(zhì) 這樣才不會(huì)被表象迷惑 只有明白本質(zhì)運(yùn)行規(guī)律 才能在迷宮中找到出口 看不清本質(zhì)的人只能 永遠(yuǎn)活...
    峰鳥(niǎo)閱讀 215評(píng)論 0 0

友情鏈接更多精彩內(nèi)容