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

Gradle Jacoco-找不到方法JacocoTestReport()

司空鸿熙
2023-03-14

我正在尝试在 Gradle 中生成 Jacoco 测试报告。当我尝试同步我的代码时,我将收到以下错误:

错误:(56,0)找不到参数[build_38ehqsoyd54r3n1gzrop303so]的方法jacoTestReport()$_run_closure4@10012308]在项目上:org.gradle.api.project类型的“app”。

我的build.gradle文件包含以下项目:

apply plugin: 'jacoco'

jacoco {
    toolVersion = "0.7.6.201602180812"
    reportsDir = file("$buildDir/reports/jacoco")
}

jacocoTestReport {
    group = "Reporting"
    reports {
        xml.enabled true
        csv.enabled false
        html.destination "${buildDir}/reports/coverage"
    }
}

当我查看文档时,我没有看到任何我做错了什么。

Gradle版本:3.3

为什么我会收到此错误,如何解决?

共有2个答案

慕容渊
2023-03-14

基本上,我知道两种方法可以实现这一目标。

第一种方法是内置的android gradle插件功能:

android { 
    ... 
    buildTypes { 
       debug { 
          testCoverageEnabled = true 
       } 
       ... 
    } 
    ... 
}

这个将定义可以执行的分级任务。据我所知,这适用于仪器测试。更多信息:Android上的代码覆盖率

第二种方法是使用这个插件:

https://github . com/vanniktech/grad le-Android-JUnit-ja coco-plugin

设置很简单:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
         classpath 'com.vanniktech:gradle-android-junit-jacoco-plugin:0.6.0'
    }
}

apply plugin: 'com.vanniktech.android.junit.jacoco'

项目同步后,您将拥有JacocoTestReport等任务

我们使用它来衡量在本地机器上运行的单元测试的代码覆盖率。

阴禄
2023-03-14

如您的问题中提到的文档所述:

如果Java插件也应用到您的项目中,那么将会创建一个名为jacocoTestReport的新任务,它依赖于测试任务。

什么是非常合乎逻辑的——Java代码覆盖率的度量需要编译、执行测试等。

因此,确实使用build.gradle的示例会导致失败,在添加应用插件:'java'后失败会消失。

 类似资料:
  • 当尝试在我的魅族MX3上运行Android项目时,我得到了主题中提到的问题。 任何帮助都将得到感激。

  • 问题内容: 我正在重写一个小应用程序,但是当它加载时,它给了我一个运行时异常。例外是 这是RunClient: 这是ClientSettings.java,这是从各种文件中调用的,args始终使用 在RunClient中 问题答案: 的第41行在上寻找默认构造函数,该构造函数不存在。您定义了一个带有的构造函数,因此不会生成任何默认构造函数。您发布的代码似乎不是正在运行的代码,因为它似乎显示了正确的

  • 问题内容: 我在使用简单的hello world程序时遇到了麻烦!我希望有人能对此有所启发。 因此,我收到的错误如下: 因此,通过错误,我可以看到它 显然 缺少main,但是它在那里: 如果有帮助,我就在Mac OS / X上。 问题答案: 问题在于您的方法没有采用String数组作为参数。请使用以下签名: 要么 其他有效选项是: 在Java语言规范中,这被告知如下: 方法main必须声明为pub

  • 问题内容: 我有一个带有本机函数的小型JNI文件,该函数将char数组转换为字节数组(因此我可以将其发送到我的C ++客户端)。 定义如下: 软件包名称(加载库的位置是: 并且该类中的本机deffiniton如下: 但是当调用ConvertString函数时,我得到以下错误: 问题可能是该类(communicationmoduleTCPIP)是可运行的类吗?我不在类中运行,并且具有以下定义(当我注

  • 问题内容: 嗨,我试图建立一个小型的webapp,但是我遇到了错误。下面是我的代码 我正在使用httpclient-4.0-beta2.jar和httpcore-4.0.1.jar。看起来BasicHttpContext与我的应用程序中的其他jar冲突了,但是我无法弄清楚。任何线索将不胜感激。 问题答案: 您似乎有一个jar文件,其中包含的旧/更新版本。如果直接发生冲突,您会收到。通常,Class