我们正在考虑在我们的开发过程中使用其中一种工具。我们的环境广泛使用 mvn 和 eclipse。
您认为哪一个是检查测试覆盖率的最佳实用程序?我意识到这可能取决于情况来确定何时使用 cobertura 而非三叶草更好,反之亦然。
提前致谢
我们正在考虑在我们的开发过程中使用其中一种工具。我们的环境广泛使用 mvn 和 eclipse。
您认为哪一个是检查测试覆盖率的最佳实用程序?我意识到这可能取决于情况来确定何时使用 cobertura 而非三叶草更好,反之亦然。
提前致谢
我也试过 Clover、Cobertura 和 Emma。我们现在使用 Cobertura。我花了大约一天时间将 Cobertura 集成到我们的无头构建中,它产生了我们需要的统计数据,并且 eCobertura eclipse 插件是原始的,但可用且信息丰富。Cobertura 也有一个非常好的 Hudson 插件。
我们以前使用艾玛的地方。带有 EclEmma 插件的 Emma 大约相当于 Cobertura/eCobertura。Emma 与 Ant 的集成是一个更复杂的部分,并且不提供复杂性因素。EclEmma 插件比 eCobertura 更好、更成熟。Hudson 插件是等效的并且易于配置。我们离开 Emma 的原因是代码库已经好几年没有维护了,我们遇到了问题,因为如果遇到使用 Lombok 的代码,它就会变得无用。
我花了一个星期(与其他任务并行)玩 Clover 并且无法让它工作。我询问了周围的同事,其中一些有丰富的经验,只有一个听说有人让 Clover 在构建中工作,这很困难。
由于 Cobertura 提供了我们所需的一切,易于使用且免费,我们认为没有理由在 Clover 上花钱。
值得注意的一个区别是 Cobertura 目前不支持 Java 7:
Clover 3.1.x 支持 Java 7:
http://confluence.atlassian.com/display/CLOVER/Clover+3.1+Release+Notes
更新:Cobertura 2.0.3 支持 Java 7
我面临着类似的困境,并测试了 Cobertura、Emma和 Clover。科贝图拉和艾玛。就速度和细节水平而言,Clover 可能是 3 种工具中最好的。当时我们买得起工具,所以我们决定选择 Clover。在这两个开源软件中,我喜欢使用 Emma 的简单性。此外,Emma 为我们提供了方法级别的覆盖,而 Cobertura 没有。
在一天结束时。代码覆盖率指标只是代码覆盖率指标,没什么特别的。只使用你觉得舒服的东西。使用任何这些工具的痛点是最小的。
我没有用过三叶草。我使用过 Cobertura:它易于设置,并提供了我们想要和预期的简单 C1 覆盖结果。有一些问题是它总是运行所有测试两次(一次有仪器,一次没有仪器),即使我们觉得我们不需要这样做。然而,由于测试套件足够短,它从来没有打扰过我们。
我们目前正在使用 Cobertura,我印象非常深刻。集成到我们现有的构建和单元测试过程中非常容易(我认为完全运行看起来不到一个小时。)此外,我们的软件堆栈是 Java 和 Groovy 的混合,Cobertura 处理得很好,甚至以您想要的方式覆盖闭包。(根据我的经验,很少有 Java 工具能真正与非 Java JVM 语言一起工作,所以这是一个惊喜。)