Visual Studio 中使用 SonarLint 分析 C# 代碼

前言

現如今大家越來越認識到質量前移的重要性。如果一開始就寫出優質的、經過測試的代碼,那麼後面的測試階段將會減少很多不必要的時間。如果開發人員迫於業務壓力,一味追求項目開發進度,往往會容易形成大量的“爛代碼”。
一般的爛代碼體現在邏輯混亂、複雜度高、易讀性差、沒有單元測試和缺乏必要的註釋。如果把這樣的“爛代碼”編譯交付測試團隊,那麼測試人員勢必會發現很多低級缺陷,甚至連冒煙測試都無法通過,這樣勢必會浪費很多時間,延誤測試進度。
所以,回到開始,爲何不一開始就是寫出優質代碼呢?

代碼評審

我們都知道很多公司都在推行 DevOps、推行測試前移,就是讓測試人員儘早參與研發過程中來,有很多團隊推行了測試人員參與代碼評審流程,但是往往效果不是很理想,原因通常是由於測試人員代碼能力有限,不熟悉業務代碼邏輯,當然也就無法發現正確問題,這樣也就而導致測試團隊的代碼評審變成了擺設。那麼問題來了,有什麼辦法解決這種狀況嗎?
如果測試人員在執行代碼評審的時候可以藉助一些代碼掃描工具,然後針對這些掃描出的問題再進一步分析,這樣輕易地可以發現一些真正代碼問題。

SonarQube簡介

在實際的項目中,我們一般使用的多種編程語言,那麼我們需要針對多種編程語言的一種掃描工具。目前主流的是使用 SonarQube 代碼質量分析平臺。

SonarQube是一個開源的代碼質量分析平臺,便於管理代碼的質量,可檢查出項目代碼的漏洞和潛在的邏輯問題。同時,它提供了豐富的插件,支持多種語言的檢測, 如 Java、Python、Groovy、C#、C、C++等幾十種編程語言的檢測。

它主要的核心價值體現在如下幾個方面:

  • 檢查代碼是否遵循編程標準:如命名規範,編寫的規範等。
  • 檢查設計存在的潛在缺陷:SonarQube通過插件Findbugs、Checkstyle等工具檢測代碼存在的缺陷。
  • 檢測代碼的重複代碼量:SonarQube可以展示項目中存在大量複製粘貼的代碼。
  • 檢測代碼中註釋的程度:源碼註釋過多或者太少都不好,影響程序的可讀可理解性。
  • 檢測代碼中包、類之間的關係:分析類之間的關係是否合理,複雜度情況。

SonarQube平臺由4個組件組成:
在這裏插入圖片描述

  1. 一個SonarQube服務器包含三個子進程(web服務(界面管理)、搜索服務、計算引擎服務(寫入數據庫))
  2. 一個SonarQube數據庫配置SonarQube服務
  3. 多個SonarQube插件位於解壓目錄extensions\plugins目錄
  4. 一個或者多個SonarQube Scanners 用於分析特定的項目

SonarQube主要工作流程:
在這裏插入圖片描述

  1. 開發人員使用開發工具(IDE)上傳代碼到 GitLab (源代碼管理器);
  2. Jenkins(CI系統)SCM自動拉取代碼到到編譯服務器;
  3. Sonar Scanners 掃描該代碼檢查質量,將分析結果推送到 SonarQube 平臺,進而持久化數據庫存儲;
  4. 開發&測試人員可以使用IDE插件 SonarLint 來同步 SonarQube 結果(java和js版本等)並可以實時在線分析分析
  5. 領導可以通過 Web 訪問 SonarQube 質量平臺,項目代碼質量趨勢一目瞭然

使用 SonarLint

SonarQube 除了搭配 Jenlins 持續掃描代碼質量外,我們還可以在IDE中使用 SonarLint ,讓開發在開發階段就及早發現可能存在的代碼問題。

演示環境

  • Windows 10
  • SonarQube 7.4
  • Visual Studio Enterprise 2017
  • SonarLint 4.8.0
  • .NET Framework 4.6.1

安裝 SonarLint

Visual Studio 中 【工具】 - > 【擴展和更新】
在這裏插入圖片描述
選擇 【聯機】 - > 輸入【SonarLint】- > 選擇【SonarLint for Visual studio】下載
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
重啓 IDE
在這裏插入圖片描述
在這裏插入圖片描述

連接 SonarQube Server

先打開我們本地的項目
打開【分析】 - > 【管理 SonarQube 連接】
在這裏插入圖片描述
在這裏插入圖片描述
按【Connect…】連接 SonarQube Server
在這裏插入圖片描述
輸入 SonarQube Server 地址以及大家的用戶名密碼
在這裏插入圖片描述
連接上 SonarQube Server後,會出現目前 server 所有的項目,選擇當前本地項目需要綁定的項目。

綁定後會從 server 上下載 該項目分析結果和規則到本機。

在這裏插入圖片描述

自動分析

SonarLint 可以自動在 IDE 上檢查出目前 server 上分析出的問題。
在這裏插入圖片描述
點擊左側的小燈泡,SonarLint 會解釋該規則檢查的理由。
在這裏插入圖片描述

手動分析

在這裏插入圖片描述
SonarLint 可手動檢查整個本地項目和當前的類
點擊【分析】- > 【針對解決方案】or 【當前類】
SonarLint 會將所有的檢查到的問題顯示在IDE下方。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章