测试小生 Li_Hugo 微博:http://weibo.com/lz2012bj

代码规范检查工具---sonar

上一篇 / 下一篇  2013-09-30 14:29:51

sonar是一款开源的代码质量静态检查工具,可以支持很多种语言。使用sonar可以检查测试覆盖率,代码复杂度,重复代码,以及违反某些规则的不良的编程风格,等等。

工作原理如图

我们目前使用jenkins+sonar的方式来检查项目代码的编码规范。

只支持maven项目的检查

目前job只能单线程执行,不能并行。请执行前,先检查是否job是否在build。

如果需要单独跑trunk,或者是新项目,没有trunk/trunk里没有pom的,请联系

使用方法。
1.打开服务url 如http://l-tools1.f.beta.cn6.qunar.com:8089/
2.点击job: Code_Rule_Check
3.输入需要检查的svn地址(注意,这里输入的是svn的branch分支,因为job会自动先跑trunk以便出对比结果)、svn用户名和密码,如图:

4.执行build
5.执行结束后,可以收到邮件。有以下几种方式查看结果:
     5.1 打开http://192.168.235.45:9000/,找到检查的svn项目的名字,打开。也可以根据build的时间来查看。
     5.2从邮件获取结果地址。点击Build URL,可以查看build日志,在日志的最后可以看到result url,如下图,直接点击即可查看结果。 
  也可以点击邮件中Sonar url后面的url,里面的地址就是本次build的结果地址。注意,使用这种方式时,需要刷新打开的sonar url。

结果查看方法

在打开的结果url里,即可以查看代码规范的检查结果,重点关注违规部分,按照严重级别进行了划分,如图:

点击每个级别可以查看报警信息,如图

查看代码diff的检查结果,首先进行版本对比,点击修改时间的下拉菜单,选择 since previous analysis

在结果页面中点击新增(数字部分,如图中的17),可以查看本次代码diff部分的报警

目前jenkins job中,配置了svn的branches地址与trunk的运行,故,按照上述步骤,即可得到本次分支与主线代码diff部分的报警信息
点击具体报警内容,即可在下方查看报警的位置和具体信息,也可以点击旁边的源码来查看全部代码

点击报警信息的名称,如上图中的“签署声明抛出异常”,可见报警的具体解释和推荐的解决办法

目前建议把代码diff中新增的严重和主要报警都进行修改。

如果并行项目严重的话,建议每次跑完即进行结果查看和修改,因为每次有job执行的话,就会冲掉上一次的结果。
sonar的执行是基于标准maven的,而我们的编译是bds的,所以pom文件的写法会导致使用中遇到问题


TAG: 代码规范

 

评分:0

我来说两句

Open Toolbar