三叶草与声纳

Dub*_*ius 4 code-coverage clover intellij-plugin sonarqube

我一直在审查静态分析工具,我最近遇到了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集成.

Mar*_*rek 9

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

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

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

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

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

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

说完这个,让我回答你的问题.

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

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

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

  • 在IDE中执行单元测试需要多长时间?他们推出的频率如何?如果它们需要很长时间并且经常启动,那么在IDEA中使用Clover的测试优化功能可能会很有趣.

  • 您是否将测试拆分为在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和Bamboo的Clover插件以这种方式工作)来显示一些数字.这意味着您不会在Sonar中看到Clover的HTML报告,其中包含详细的源代码着色,每测试覆盖率,标记云等.

干杯马雷克