Closed. This question is opinion-based。它当前不接受答案。












想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。

5年前关闭。



Improve this question





我一直在审查Static Analysis工具,最近遇到了Atlassian Clover和SonarQube。从服务器的角度来看,这两种产品看起来非常相似并且几乎完全相同,但是我无法在线找到它们之间的良好对比。

我也一直在审查他们的IntelliJ插件,在这里我看到了两者之间的巨大差异。 Clover的IDE集成是惊人的,指出了单元测试未涵盖的确切代码行。但是,SonarQube服务器具有此功能,但我不确定每人300美元的Clover成本是否值得IDE便利。

Sonar的插件似乎只是指出了IDE中的代码问题,这很好,但是IntelliJ已经具有此功能。另外,Clover插件中是否缺少此功能,还是因为我还没有将Clover插件放在服务器前而根本看不到它?

最后,我还看到Sonar可以使用Clover生成的报告。有人对这个有经验么? SonarQube服务器是否可以通过利用这些报告来充分替代三叶草服务器?如果没有,声纳缺少什么?

供参考:http://docs.codehaus.org/display/SONAR/Clover+Plugin

一些背景:被分析的产品是使用Maven构建的Java Web项目。两种工具似乎都具有适当的Maven集成。

最佳答案

免责声明:我是Atlassian的Clover开发人员。

但是,我当然会尽量做到客观。

首先让我强调三叶草和声纳之间的区别:


Clover主要是一个代码覆盖工具。它既跟踪总覆盖率,又跟踪每次测试覆盖率。除此之外,它还具有一些代码指标,但它不是典型的静态代码分析工具,例如Checkstyle,FindBugs或PMD。
Sonar(从我的角度来看)主要是一种数据聚合工具,它可以从各种工具中收集各种数据(例如代码覆盖率,静态分析结果,代码指标)并将它们呈现在一个地方。


这两个工具都可以创建丰富的报告,这两者的相似之处。

话虽如此,让我回答您的问题。


Clover的IDE集成是惊人的,指出了单元测试未涵盖的确切代码行,但是我不确定Clover的人均300美元的成本是否值得这种IDE便利。


您必须自己回答:-)很少值得考虑的事情:


您的开发人员如何运行单元测试-他们在提交之前是否在IDE中运行它们?您是否有“绿色建筑”政策?如果两个答案都是肯定的,那么在“想法”中拥有三叶草可能是值得的。
在IDE中执行单元测试需要多少时间?它们发射的频率如何?如果它们花费很长时间并且经常启动,那么在IDEA中使用Clover的Test Optimization功能可能会很有趣。
您是否将测试分为几个在CI服务器上运行的构建计划?在特定的环境配置中运行?在这种情况下,服务器报告可能比在IDE中更有价值
您的开发人员更喜欢直接在其IDE中查看代码覆盖率,还是希望在浏览器中单击HTML报告?
您是否希望在IDE中拥有突出显示覆盖范围的源代码,从而使您的团队的生产力得到提高?多少?是“节省的时间*工资>三叶草的许可证价格”吗?



Sonar的插件似乎只是指出了IDE中的代码问题,这很好,但是IntelliJ已经具有此功能。另外,Clover的插件中是否缺少此功能?


Clover不会执行静态分析,因此不会显示代码错误。 HTML报告和IDE插件(IDEA / Eclipse)都没有。


最后,我还看到Sonar可以使用Clover生成的报告。 [...] SonarQube服务器是否通过利用这些报告充分替代了四叶草服务器?如果没有,声纳缺少什么?


我不确定100%的把握(如果我错了,请纠正我),但我认为Sonar Clover插件会解析Clover的XML报告文件(至少Jenkins,Hudson和Bamboo的Clover插件以这种方式工作)以显示一些数字。这意味着您不会在Sonar中看到Clover's HTML report以及详细的源代码行着色,每次测试覆盖率,标签云等。

干杯
马雷克

09-28 09:53