Cui.Liqiang

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  上次提到了一些sonar扩展的基本原理。这里是上次提到的插件的地址在这里:https://github.com/cui-liqiang/sonar-mantra

  现在已经做成了可配置的方式,不过配置的方式还很techi,需要修改jar包中的一个文本文件以及潜在的修改一些java文件。

  其作用简单描述一下:对于某一个分析的指标(比如测试覆盖率),我指定一个阈值(比如80%)。如果某次运行的测试覆盖率小于这个值,那么我就会检查这次的值是否比上次分析成功的时候小了,如果小了,那么就让这次分析失败,从而可以触发相关构建的失败。

  代码库中有一个文本文件用来做配置,一个可能的配置如下:

coverage,80
violations_density,80

  这个的意思就是我要检查coverage,阈值是80%。同时我也要检查violations_density,阈值也是80%。注意这里的这些值都是跟数据库里面存的那些值对应的,这些检查项也是跟数据库字段对应的。比如coverage在数据库里面存的就是80,而不是80%。这也是为什么我说这种配置方式很techi。在添加新的一个检查项的同时,需要实现一个继承于DeltaMeasure的新类,来指定失败条件(因为不是所有检查项都是值下降就是失败)。

  每次构建的历史记录并没有保存在数据库里面,因为并没有相应的字段存放。所以我放到了$SONAR_HOME/extentions/plugins/里面,当然需要指定SONAR_HOME这个环境变量才行。

 

      上个图看看效果:

  一个典型的maven工程,下面是build配置。

  因为把测试删掉,build失败的样子:

posted on 2012-11-06 22:41  Cui.Liqiang  阅读(1502)  评论(0编辑  收藏  举报