SonarQube計算增量覆蓋率

https://blog.csdn.net/weixin_30800615/article/details/113318163

有了解SonaqQube的讀者可能要說了,這個方案存在問題。一般我們會在master分支或者是develop分支上計算(增量)代碼覆蓋率。當我們把待評審的MR/Push代碼的掃描結果直接推送到這些分支上的話,如果這個請求經過評審后被拒絕,那這些分支上的數據不是被污染了么?

因此,直接利用master分支是有問題的。這里,我們需要額外利用一個 SonarQube Branch的插件。具體方案是,將待評審的MR/Push的掃描結果推送到一個約定的分支上,如"mr-xxxx"上,這個分支作為一個短分支(short branch),將基于指定的長分支(long branch)進行計算,得到上圖的質量門禁計算結果。當然這里的前提是,長分支上的數據和MR/Push的目標分支是實時對應的,否則會引起計算結果的偏差。

具體來說,就是在sonar掃描時指定分支和基線分支,以maven項目為例

mvn clean test sonar:sonar -Dmaven.test.failure.ignore -Dsonar.branch.name=mr-xxx -Dsonar.branch.target=develop

也就是以develop分支為基線,來計算mr-xxx分支相對于develop的代碼增量覆蓋率,以及靜態(tài)代碼掃描結果,并計算質量門禁結果。

由于SonarQube在社區(qū)版上并不提供多分支掃描的功能,因此只有采購develop以上的版本才能具備次功能,或者是在github上使用開源社區(qū)提供的sonarqube-community-branch-plugin

總結一下

上述方案中,額外利用了

1)SonarQube Webhook

  1. SonarQube 分支插件 和長短分支概念

就能在一般三者集成的方案中實現增量代碼覆蓋率和質量門禁

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容