基于 SonarQube 的增量代码扫描

2019-08-02 11:28:18 浏览数 (2)

前言

很多团队刚开始推行使用SonarQube进行代码质量管理的时候总会遇到一个揪心的问题:因为很多旧项目之前压根就没用这套工具,团队一上来兴致勃勃的就拿着这个工具跑指标,新鲜感很强,毕竟人是好奇的动物。然鹅,几分钟后的结果却是意料之外:

几乎接近于0的测试覆盖率,几千上万个bad taste、bug和漏洞等等不一而足,然后跑多两次后大家就从兴趣盎然到心如死灰。本人的团队就是一个血淋淋的现实,然后这样也在逼着我去想应该用什么方法激起大家使用新工具的兴趣呢,毕竟行政干预从来就不是一个那么友好,或者说简直是粗暴的方式。

后来,我想既然要引导兴趣,肯定要让同事觉得坑不大,可以越过的,然后一步一步改善的。后来就想到分以下两步走:

1、先把所有团队画一个基线(baseline);

2、然后只针对增量代码进行扫描(即对sonarqube中的质量阈中的以“新XXX”开头等度量指标全部设为不大于0,这意味着只做增量代码扫描)。

画基线

1、在sonar-project.properties中,把sonar.projectVersion=1.1(初始值,这里以1.1作为基线)

代码语言:javascript复制
# 指定项目的版本为1.1
sonar.projectVersion=1.1

2、在命令行运行sonnar-scanner命令,得到整个项目的质量基线。

项目质量基线

设置并运行

1、在sonarqube中,添加以“新”开头的指标,并同时把它的指标设成0,即代表增量代码扫描;并同时把leak period 设成默认的previous_version。

2、开始在工程中人为添加坏味道等不规范的代码,然后跑sonar-scanner进行扫描。

0 人点赞