三叶草与声纳

时间:2014-07-07 14:44:58

标签: code-coverage sonarqube intellij-plugin clover

我一直在审核静态分析工具,而且我最近遇到了Atlassian Clover和SonarQube。从服务器的角度来看,这两种产品看起来非常相似,几乎完全相同,但我无法在网上找到它们的良好比较。

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

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

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

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

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

1 个答案:

答案 0 :(得分:9)

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

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

让我首先强调Clover和Sonar之间的一个区别:

  • Clover主要是代码覆盖工具。它跟踪总覆盖范围以及每个测试覆盖范围。除此之外,它还有一些代码指标,但它不是典型的静态代码分析工具,如Checkstyle,FindBugs或PMD。

  • Sonar(从我的角度来看)主要是一个数据聚合工具,它可以从各种工具中收集各种数据(如代码覆盖率,静态分析结果,代码度量)并将它们呈现在一个地方。

这两个工具的相似之处在于它们都可以创建丰富的报告。

说完这些,让我回答你的问题。

  

Clover的IDE集成非常棒,指出单元测试未涵盖的确切代码行[...]但我不确定Clover的300美元/人成本是多少?值得这个IDE方便。

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

  • 您的开发人员如何运行单元测试 - 他们是否在提交之前在IDE中运行它们?你有一个"绿色构建"政策?如果两个答案都是肯定的,那么在IDEA中拥有Clover可能是值得的。

  • 在IDE中执行单元测试需要多长时间?他们多久发布一次?如果他们花了很长时间并经常推出,那么在IDEA中使用Clover的Test Optimization功能可能会很有趣。

  • 您是否将测试拆分为在CI服务器上运行的多个构建计划?在特定环境配置中运行?在这种情况下,服务器报告可能比在IDE中更有价值

  • 您的开发人员是希望直接在他们的IDE中查看代码覆盖率,还是在浏览器中单击HTML报告?

  • 您是否希望通过在IDE中突出显示源代码来提高团队效率?多少?节省的时间是*工资>三叶草许可证价格'?

  

Sonar的插件似乎只是指出了IDE中的代码问题,这很好,但IntelliJ已经具备了这方面的功能。另外,Clover在他们的插件中缺少这个吗?

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

  

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

我不是百分百肯定(如果我错了,请纠正我)但我认为Sonar Clover插件解析了Clover的XML报告文件(至少对于Jenkins,Hudson和Clover插件来说Bamboo以这种方式工作)来显示一些数字。这意味着您在Sonar中看不到具有详细源线着色,每测试覆盖率,标签云等的Clover's HTML report

干杯 马立克