我想随着时间的推移开始跟踪团队代码库中的代码指标。我们认为,我们主要要关注的五个度量是对象之间的耦合,霍尔斯特德努力,方法内聚性的缺乏,加权方法的复杂性以及类的响应。有很多工具只能通过我们的代码一次测量这些指标,但是我想对其进行跟踪。一位同事提到了Sonar(现在显然称为SonarQube)。

我设置了一个实例,看起来它具有所需的时间轴支持,但是除了代码复杂性和代码覆盖率之外,它没有任何好的代码指标。大量的搜索结果告诉我,诸如方法缺乏凝聚力实际上曾经存在于其中,但已被弃用并删除。我需要这些度量标准,无论它们是否得到官方支持还是通过社区插件提供,但是我都没有找到一个不推荐使用的度量标准来添加它们。

存在手动指标,但是我们有数百个 class ,我不想每周都要对每个 class 进行手动测量。这将成为一份全职工作。我宁愿避免编写自己的插件。如果走那条路,我不妨编写一个cron作业,每周运行一次以获取最新数据,并使用本地工具(当前使用MetricsReloaded)获取所需的分析,然后将本地分析转储到本地数据库中,我以后可以做任何事情。这些方法似乎很差,必须要有更好的方法,对吗?

我如何获得SonarQube跟踪的这些指标?

最佳答案

如果我理解正确,那么您想在SonarQube中导入工具的结果以随时间跟踪某些指标。

我认为最好的做法是编写一个插件,而不是计算指标,而是导入由您的工具生成的报告。那可能是最好的可重用选项,您不必重新发明轮子,也可以从SonarQube功能中受益。
这是通常编写覆盖插件(用于Java)的方式。您可以查看Cobertura或Clover插件,甚至Generic Coverage插件,以了解SonarSource我们是如何编写此类插件的。

10-07 19:18
查看更多