当前位置: 首页 > 知识库问答 >
问题:

Gradle Jacoco插件报告零覆盖

陈嘉荣
2023-03-14

当运行Gradle的Jacoco插件时,我在一组选定的类上得到零代码覆盖率报告。我已经确认测试这些类的所有单元测试都已成功运行。

非常有趣的是,EclEmma在Eclipse中生成了正确的代码覆盖率结果。我已经确认这两个工具使用的是相同版本的Jacoco。

我想知道这两种工具的区别是什么?我需要Gradle Jacoco插件的额外配置吗。

编辑:我的Gradle Jacoco输出显示“com类的执行数据/…不匹配”

更新:我在Eclipse中打开了Jacoco生成的test.exec文件。它显示覆盖缺失的类执行了80%的探测。

共有3个答案

公孙涵育
2023-03-14

还要检查单元测试是否实际运行。如果您对Junit5有jar hell,它可能会默默地失败。添加信息并检查错误消息。

游乐池
2023-03-14

在切换到gradle包装器时,我也遇到了同样的问题,但还是用gradle运行jacoco。用gradle包装器运行jacoco解决了这个问题。

这个被stackoverflow接受的答案帮助我找出我错过了什么。

狄宗清
2023-03-14

这可能意味着jacoco插件在gradle中没有正确配置。在这里,您可以找到Jacoco和gradle的常见错误清单(感谢Taeho Kim的明确回答):https://stackoverflow.com/a/23965581/2166900

此外,以下是我在上一个Android项目中使用的配置,它对我很有用:

apply plugin: 'jacoco'

jacoco {
    toolVersion = "0.7.2.+"
}

def coverageSourceDirs = [
        'src/main/java'
]

task jacocoTestReport(type:JacocoReport, dependsOn: "testDebug") {
    group = "Reporting"

    description = "Generate Jacoco coverage reports"

    classDirectories = fileTree(
            dir: 'build/intermediates/classes/debug',
            excludes: ['**/R.class',
                       '**/R$*.class',
                       '**/*$ViewInjector*.*',
                       '**/BuildConfig.*',
                       '**/Manifest*.*']
    )

    additionalSourceDirs = files(coverageSourceDirs)
    sourceDirectories = files(coverageSourceDirs)
    executionData = files('build/jacoco/testDebug.exec')

    reports {
        xml.enabled = false
        html.enabled = true
    }
}
 类似资料:
  • 我使用sonarqube作为测试结果的输出,而maven和Jacoco用于测试测试用例。 Sonarqube版本是5.4 Maven版本是3.3.9 Jacoco版本0.7 这是我的pom.xml 我也在这里跟踪这个链接,但是对于我正在使用的文件,请在这里输入链接描述。 这就是我构建测试项目的方式 buiild返回成功,但没有生成代码覆盖率我还通过去sonarqube检查了这一点localhost

  • 当我运行mvn干净测试时,我希望覆盖输出被写入目标/覆盖报告,但是当我打开index.html构建后它是空的。 我检查了以下内容,jacoco.exec文件存在,其中有一组类名-在覆盖率html中有一个链接“Sessions ”,当我单击它时,我看到一组我的类似乎已经被执行-当我运行maven命令时,我没有看到错误或警告 我很困惑为什么报告是空的。从我看到的所有例子来看,这似乎应该行得通。我错过了

  • JaCoCo报告总是显示0%的覆盖率,但是Intellij集成报告是可以的。我已经看到其他StackOverflow问题,但没有帮助。下面是我在pom.xml配置中的jacoco-plugin和surefire-plugin snnipet: 编辑: 我最后的尝试是命令肯定火和哈科插件,但它不起作用。与肯定火和哈科插件有什么关系吗?

  • 我有一个项目,我使用Jacoco计算代码覆盖率。我使用maven配置,如下所示: http://www.petrikainulainen.net/programming/maven/creating-code-coverage-reports-for-unit-and-integration-tests-with-the-jacoco-maven-plugin/ 我和詹金斯一起运行“mvn清洁安装

  • 我正在更新一个继承的存储库,它的测试覆盖率很差。回购本身是一个pytest插件。我已经改变了回购使用随着,并转换原始测试使用作为测试插件时pytest留档建议。 测试和毒物构建等。工作得很好。然而,覆盖是报告错误的错失,例如类定义、导入等。这是因为代码本身作为pytest实例化的一部分被导入,直到测试真正开始才被“覆盖”。 我已经阅读了pytest文档、pytest cov和coverage文档以

  • 我使用maven-surefire-plugin内置功能使用了Flaky测试重新运行机制。此外,我还基于而不是添加了cucumber依赖项。它们都有自己版本的cucumber-java和cucumber-jvm依赖项。 现在,我需要另一个运行程序,其中包含以下代码(根据StackOverflow上的其他论坛和线程) 但我不需要有这个第二个跑者,因为重新运行机制工作绝对出色,只有一个跑者在顶部。ma