Gradle Android JUnit Jacoco 插件使用教程

Gradle Android JUnit Jacoco 插件使用教程

gradle-android-junit-jacoco-pluginGradle plugin that generates JaCoCo reports from an Android Gradle Project项目地址:https://gitcode.com/gh_mirrors/gr/gradle-android-junit-jacoco-plugin

项目的目录结构及介绍

gradle-android-junit-jacoco-plugin/
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── LICENSE
├── README.md
├── settings.gradle
└── src
    ├── main
    │   └── groovy
    │       └── com
    │           └── vanniktech
    │               └── gradle
    │                   └── android
    │                       └── junit
    │                           └── jacoco
    │                               └── AndroidJUnitJacocoPlugin.groovy
    └── test
        └── groovy
            └── com
                └── vanniktech
                    └── gradle
                        └── android
                            └── junit
                                └── jacoco
                                    └── AndroidJUnitJacocoPluginTest.groovy

目录结构说明

  • build.gradle: 项目的构建脚本。
  • gradle/wrapper/: 包含 Gradle Wrapper 的文件,用于确保项目使用特定版本的 Gradle。
  • gradle.properties: 包含 Gradle 构建的属性配置。
  • gradlewgradlew.bat: Gradle Wrapper 的脚本,用于在不同平台上执行 Gradle 任务。
  • LICENSE: 项目的开源许可证。
  • README.md: 项目的说明文档。
  • settings.gradle: 项目的设置脚本,用于包含子项目。
  • src/main/groovy/...: 包含插件的主要实现代码。
  • src/test/groovy/...: 包含插件的测试代码。

项目的启动文件介绍

项目的启动文件是 src/main/groovy/com/vanniktech/gradle/android/junit/jacoco/AndroidJUnitJacocoPlugin.groovy。这个文件定义了插件的主要逻辑和行为。

AndroidJUnitJacocoPlugin.groovy 文件说明

package com.vanniktech.gradle.android.junit.jacoco

import org.gradle.api.Plugin
import org.gradle.api.Project

class AndroidJUnitJacocoPlugin implements Plugin<Project> {
    @Override
    void apply(Project project) {
        project.pluginManager.apply 'com.android.library'
        project.pluginManager.apply 'jacoco'

        project.android.testOptions.unitTests.all {
            it.jacoco.includeNoLocationClasses = true
        }

        project.tasks.create('jacocoTestReport', JacocoReport) {
            dependsOn 'testDebugUnitTest'

            sourceDirectories = project.files(["${project.projectDir}/src/main/java"])
            classDirectories = project.fileTree(dir: "${project.buildDir}/intermediates/classes/debug", excludes: [
                '**/R.class',
                '**/R$*.class',
                '**/BuildConfig.*',
                '**/Manifest*.*'
            ])
            executionData = project.fileTree(dir: project.buildDir, includes: [
                'jacoco/testDebugUnitTest.exec',
                'outputs/code-coverage/connected/*coverage.ec'
            ])
        }
    }
}

文件说明

  • AndroidJUnitJacocoPlugin 类实现了 Plugin<Project> 接口,并重写了 apply 方法。
  • apply 方法中,插件首先应用了 com.android.libraryjacoco 插件。
  • 配置了 Android 测试选项,确保 Jacoco 包含无位置类。
  • 创建了一个名为 jacocoTestReport 的任务,用于生成测试报告。

项目的配置文件介绍

build.gradle 文件

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.0'
        classpath 'org.jacoco:org.jacoco.core:0.8.5'
    }
}

apply plugin: 'groovy'
apply plugin: 'maven-publish'
apply plugin: 'com.vanniktech.gradle.android.junit.jacoco'

dependencies {
    implementation gradleApi()

gradle-android-junit-jacoco-pluginGradle plugin that generates JaCoCo reports from an Android Gradle Project项目地址:https://gitcode.com/gh_mirrors/gr/gradle-android-junit-jacoco-plugin

  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萧桔格Wilbur

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值