【问题标题】:Ant Vs Gradle Jacoco code coverage differsAnt Vs Gradle Jacoco 代码覆盖率不同
【发布时间】:2021-02-10 07:48:18
【问题描述】:

我们已从 ant 构建工具迁移到 Gradle,并将 0.7.4 jacoco 版本升级到最新的 0.8.6 版本。

我观察到jacoco ReportsGradle-6.6.1 构建中与Ant-1.7.0 相比略有降低(~1%),如下所示。

 compileJava {
            sourceCompatibility = JavaVersion.VERSION_1_8
            targetCompatibility = JavaVersion.VERSION_1_8

            options.fork = true
            options.incremental = true
            options.encoding = 'UTF-8'
            options.debug = true

 }

蚂蚁编译

<javac srcdir="${src}"
           destdir="${classes}"
           excludes="**/package-info.java"
           debug="true"
           fork="true"
           memoryMaximumSize="${javacCoreMaxMem}"
           includeAntRuntime="false"
           encoding="UTF-8">
      <classpath>
        <pathelement path="${deps}" />
      </classpath>
    </javac>

我已确保 Ant compile args 和 Gradle compileJava Args 应该匹配。但不确定为什么报告中存在差异?

【问题讨论】:

    标签: gradle ant code-coverage jacoco jacoco-plugin


    【解决方案1】:

    我已经确保 Ant compile args 和 Gradle compileJava Args 应该匹配。

    但你是在比较不同版本的 JaCoCo

    还将 0.7.4 jacoco 版本升级到最新的 0.8.6 版本

    请查看这些版本之间的变化 - https://www.jacoco.org/jacoco/trunk/doc/changes.html

    有许多会改变指标的计算方式,例如指令或分支的数量。

    作为 0.7.5 中的示例之一,有

    使用隐式异常更好地检测代码块中的覆盖率

    作为 0.8.0 中的另一个示例,有

    在创建报告期间,各种编译器生成的工件被过滤掉,否则需要不必要的,有时甚至是不可能的技巧来避免部分或遗漏的覆盖

    另请参阅 https://stackoverflow.com/a/42680333/244993 示例,它显示了不同版本之间数字不同的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-11
      • 2019-01-02
      • 2012-11-02
      • 1970-01-01
      • 2014-11-09
      • 2016-06-03
      • 2020-07-18
      相关资源
      最近更新 更多