使用Sonar分析Golang代碼

為了保證項目代碼質(zhì)量,需要控制每個Pull Request的代碼單元測試覆蓋率。翻看了Sonar文檔,發(fā)現(xiàn)Sonar是一款保證代碼質(zhì)量的工具,可以滿足此類需求。

下面就用一個Demo來體驗一下Sonar的功能。

安裝SonarQube

  1. 以Docker容器運行:
docker run -d --name sonarqube -p 9000:9000 sonarqube
  1. 訪問http://localhost:9000
    image.png

    使用默認的用戶名密碼admin/admin登陸。

注意:為了簡化建立 SonarQube 的步驟,所有的內(nèi)容我都使用了默認值。比如,我直接使用了 SonarQube 內(nèi)建的數(shù)據(jù)庫,端口也采用了默認的 9000。但是,在實際工程項目中,為了 Sonar 數(shù)據(jù)的長期可維護和升級,我們通常會使用自己的數(shù)據(jù)庫。

安裝Sonar Scanner

SonarQube平臺搭建完成后,需要安裝Sonar Scanner以及創(chuàng)建項目??梢詮囊韵鹿俜教峁┑腟canner中挑選滿足需要的進行安裝。

  1. 點擊下載MacOS安裝包


    image.png
  2. 下載完成之后解壓,修改配置文件conf/sonar-scanner.properties,將sonar.host.url指向我們剛剛搭建的本地SonarQube平臺http://localhost:9000

    image.png

  3. 將sonar-scanner/bin加入$PATH


    image.png
  4. 執(zhí)行sonar-scanner -h可以驗證我們已經(jīng)成功安裝了Sonar Scanner

    image.png

靜態(tài)代碼掃描

在進行靜態(tài)代碼掃描之前需要對項目進行配置,在項目目錄下創(chuàng)建sonar-project.properties文件,以我這里分析的Golang項目為例

# must be unique in a given SonarQube instance
sonar.projectKey=play-golang

# --- optional properties ---

# defaults to project key
sonar.projectName=play-golang
# defaults to 'not provided'
sonar.projectVersion=1.0

# Path is relative to the sonar-project.properties file. Defaults to .
sonar.sources=.

# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8

完成之后在項目根目錄下執(zhí)行sonar-scanner進行靜態(tài)代碼分析,掃描結(jié)束后可以在SonarQube查看掃描結(jié)果。

image.png

參考:

https://docs.sonarqube.org/latest/setup/get-started-2-minutes/
https://docs.sonarqube.org/latest/analysis/overview/
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

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

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

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