java - Clover 和 Jacoco 给出不同的代码覆盖率结果

标签 java unit-testing code-coverage jacoco clover

我刚刚使用 Clover 对我的项目进行了代码覆盖率分析,结果约为 60%。我和 Jacoco 对同一个项目进行了分析,结果约为 52%。 8%的差异正常吗?我过去也一直使用这些工具运行代码覆盖率分析,差异从未如此巨大。

最佳答案

请注意,Clover 和 JaCoCo 使用不同的代码覆盖率指标:

  • Clover 具有方法、语句和分支覆盖率(加上总覆盖率指标,即三者之和)
  • JaCoCo 具有方法、代码块、行、分支和指令覆盖

因此,您不能简单地在这两个工具生成的结果之间加上等号。我建议并排检查报告,找出最大差异的地方,然后查看那里使用的代码结构,从而导致这种差异。

哦。顺便一提。请记住,JaCoCo 使用字节码检测,这意味着它还将检测 javac 编译器创建的合成方法,这些方法在源代码中不可见。

关于java - Clover 和 Jacoco 给出不同的代码覆盖率结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24369631/

相关文章:

java - Netbeans 在删除的代码中显示编译错误

.net - 存储库本身通常不经过测试?

swift - Xcode 7 永久代码覆盖覆盖

java - 在 Spring boot 中添加 catch block 的代码覆盖率

jenkins - 如何使用 Jacoco 和多个模块在 Jenkins 中实现代码覆盖率?

java - HTTPS:如何支持所有SSL/TLS协议(protocol)和密码套件?

c# - 为什么 C# 中的大多数类型都继承自 System.Object?

java - 单例意味着哈希码总是返回相同的吗?

java - 设置后备存储位置

c# - 如何测试非常大对象的数据映射器