【问题标题】:Clover versus Sonar [closed]三叶草与声纳[关闭]
【发布时间】:2014-08-28 02:22:49
【问题描述】:

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

【问题讨论】:

    标签: code-coverage sonarqube intellij-plugin clover


    【解决方案1】:

    免责声明:我是 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 中使用具有覆盖突出显示的源代码来提高您的团队的工作效率?多少钱? '节省的时间 * 薪水 > clover 许可证价格'?

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

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

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

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

    干杯 马立克

    【讨论】:

    • 这清楚了很多!非常感谢您抽出宝贵时间回复。
    • 嘿,我知道这是一岁了@这一点,但我想知道您是否可以指导我查看与 Bamboo / Source Tree 集成的任何文档。我也在评估它以在我们的构建过程中使用,但 youtube 上关于 Clover 的最新视频来自 2012 年。
    • 有关 Clover 与 Bamboo 的集成,请参阅:confluence.atlassian.com/display/BAMBOO/… - Clover 插件与 Bamboo 捆绑在一起,因此您无需安装任何东西;您只需要一个许可证密钥(您可以从 my.atlassian.com 获取评估密钥);如果您有相当标准的项目设置,Bamboo Clover Plugin 可以自动集成(Ant、Maven、Grails);如果没有,您可以手动设置配置详细信息。 PS:Clover 与 SourceTree 没有任何集成。
    • 是的,Clover 是开源的,您可以从 Bitbucket 存储库下载源代码。顺便说一句:我已经从开源代码生成了二进制文件,你可以在这里找到它们:openclover.org.
    猜你喜欢
    • 2011-12-09
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多