在 Android 项目中使用 JaCoCo Gradle

Use JaCoCo in Android Project with Gradle

我有一个 android 项目 Gradle 5.1.1 我想使用 JaCoCo 生成有关测试代码覆盖率的 HTML 报告。我尝试按照某些文章中的说明进行操作,但我的所有尝试都导致了错误。

对我有用的是应用插件'jacoco'(之后项目成功构建)。

apply plugin: 'jacoco'

但是一旦我添加任务 'jacocoTestReport',Gradle 就无法与文件同步,我得到了这个错误。

这是我的任务:

jacocoTestReport {
reports {
    html.enabled true
    xml.enabled false
    csv.enabled false
    html.destination file("${buildDir}/jacocoHtml")
}}

那是我的错误:

ERROR: Could not find method jacocoTestReport() for arguments [build_8kqk7qvpoocfxfydulk1p4m35$_run_closure3@1aba12a5] on project ':app' of type org.gradle.api.Project.

我在 'build.gradle' 中添加 "apply plugin" 后尝试使用 "gradlew clean build"。教程作者成功添加任务并在终端中使用此行获取 jacoco 报告:

gradlew build jacocoTestReport

这是我用来了解如何将 jacoco 添加到项目的文章的链接:

https://reflectoring.io/jacoco/

https://android.jlelse.eu/get-beautiful-coverage-reports-in-your-android-projects-ce9ba281507f

所以我的问题是:有没有办法用 Gradle 将 Jacoco 添加到 Android 项目中?我做错了什么?

可能只是缺少复制粘贴,但请确保将函数定义为 gradle 中的任务,即:task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest']) {

我关注此博客以在我的初始项目中设置我的 Jacoco 实例,发现它非常有用。 https://engineering.rallyhealth.com/android/code-coverage/testing/2018/06/04/android-code-coverage.html