1. 程式人生 > >SonarQube4.4+Jenkins進行程式碼檢查例項之三-單元測試分析

SonarQube4.4+Jenkins進行程式碼檢查例項之三-單元測試分析

本文來介紹如何利用SonarQube來分析單元測試。最新推薦在分析外掛是Jacoco。

當然要進行單元測試,首先單元測試得到了書寫,能夠本地執行得到結果。本示例採用Maven的典型結構。

1,配置Maven,在maven的conf目錄下開啟settings.xml,在<profile>下加入Sonar,如下

 <!-- sonar -->
    <profile>
        <id>sonar</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <!-- FOR Embedded database H2-->
            <sonar.jdbc.url>jdbc:h2:tcp://localhost:9092/sonar</sonar.jdbc.url>
            <sonar.jdbc.driverClassName>org.h2.Driver</sonar.jdbc.driverClassName> 
            <sonar.jdbc.username>sonar</sonar.jdbc.username>
            <sonar.jdbc.password>sonar</sonar.jdbc.password>
              <!-- optional URL to server. Default value is http://localhost:9000 --> 
            <sonar.host.url>http://127.0.0.1:9000</sonar.host.url> 
         </properties>       
     </profile>
    <!-- end of sonar -->	
2,在Jenkins中配置,前面部分與例項二一樣,到了Maven的部分,root POM填寫pom.xml

       在Goals and options中填寫 org.jacoco:jacoco-maven-plugin:prepare-agent clean install 

     SonarQube和Maven都內嵌支援了Jacoco,所以不必另外安裝Jacoco

3,在Jinkins中繼續配置Post Step,在Execute Windows batch command中 填入 mvn sonar:sonar

4,以上配置就大功告成了。

當代碼在SVN中提交後,仍然在1分鐘左右,就能啟動以上。

到SonarQube中檢視,發現在單元測試部分有如下圖示:


單元測試的成功情況和覆蓋率都有了,不僅如此還有

SonarQube會提醒哪些檔案的單元測試覆蓋率還不夠。

通過以上,就能監控程式碼在一個可觀察的樣子,並能漸漸提高,減少技術債務,得到乾淨的程式碼。規避缺陷和異常!