Gradle Jacoco - 找不到方法 jacocoTestReport()
Gradle Jacoco - Could not find method jacocoTestReport()
我正在尝试在 Gradle 中生成 Jacoco 测试报告。当我尝试同步我的代码时,我会收到以下错误:
Error:(56, 0) Could not find method jacocoTestReport() for arguments [build_38ehqsoyd54r3n1gzrop303so$_run_closure4@10012308] on project ':app' of type org.gradle.api.Project.
我的 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"
}
}
当我查看 documentation 时,我没有发现任何错误。
Gradle版本:3.3
为什么我会收到此错误消息,我该如何解决?
如documentation mentioned in your question所述:
If the Java plugin is also applied to your project, a new task named jacocoTestReport is created that depends on the test task.
非常合乎逻辑 - Java 代码的覆盖率测量需要编译、执行测试等。
因此确实使用您的 build.gradle
示例导致失败,在添加 apply plugin: 'java'
后消失。
基本上我知道有两种方法可以实现。
第一种方法是内置androidgradle插件功能:
android {
...
buildTypes {
debug {
testCoverageEnabled = true
}
...
}
...
}
这个将定义 gradle 个可以执行的任务。据我所知,这适用于仪器测试。更多信息:Code Coverage on Android
第二种方法是使用这个插件:
https://github.com/vanniktech/gradle-android-junit-jacoco-plugin
设置很简单:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.vanniktech:gradle-android-junit-jacoco-plugin:0.6.0'
}
}
apply plugin: 'com.vanniktech.android.junit.jacoco'
并且在项目同步之后,您将有类似 jacocoTestReport<Flavor><BuildType>
的任务
我们用它来衡量我们的单元测试的代码覆盖率 运行 在本地机器上。
我正在尝试在 Gradle 中生成 Jacoco 测试报告。当我尝试同步我的代码时,我会收到以下错误:
Error:(56, 0) Could not find method jacocoTestReport() for arguments [build_38ehqsoyd54r3n1gzrop303so$_run_closure4@10012308] on project ':app' of type org.gradle.api.Project.
我的 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"
}
}
当我查看 documentation 时,我没有发现任何错误。
Gradle版本:3.3
为什么我会收到此错误消息,我该如何解决?
如documentation mentioned in your question所述:
If the Java plugin is also applied to your project, a new task named jacocoTestReport is created that depends on the test task.
非常合乎逻辑 - Java 代码的覆盖率测量需要编译、执行测试等。
因此确实使用您的 build.gradle
示例导致失败,在添加 apply plugin: 'java'
后消失。
基本上我知道有两种方法可以实现。
第一种方法是内置androidgradle插件功能:
android {
...
buildTypes {
debug {
testCoverageEnabled = true
}
...
}
...
}
这个将定义 gradle 个可以执行的任务。据我所知,这适用于仪器测试。更多信息:Code Coverage on Android
第二种方法是使用这个插件:
https://github.com/vanniktech/gradle-android-junit-jacoco-plugin
设置很简单:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.vanniktech:gradle-android-junit-jacoco-plugin:0.6.0'
}
}
apply plugin: 'com.vanniktech.android.junit.jacoco'
并且在项目同步之后,您将有类似 jacocoTestReport<Flavor><BuildType>
我们用它来衡量我们的单元测试的代码覆盖率 运行 在本地机器上。