jacoco入门_JaCoCo 插件

JaCoCo插件提供Java代码覆盖率指标,通过集成到Gradle项目中,生成代码覆盖报告。应用插件后,配置`jacocoTestReport`任务生成HTML报告,调整报告路径和格式。此外,插件还可配置测试任务的特定属性,如覆盖率数据的保存位置。JaCoCo不仅适用于Java插件,还能与其他fork Java进程的任务结合,如application插件。
摘要由CSDN通过智能技术生成

JaCoCo 插件

JaCoCo 插件目前还是孵化中状态。请务必注意,在以后的 Gradle 版本中,DSL 和其他配置可能会有所改变。

JaCoCo 插件通过集成 JaCoCo为 Java 代码提供了代码覆盖率指标。

入门

要想开始,请将 JaCoCo 插件应用于你想要计算代码覆盖率的项目中。

应用 JaCoCo 插件

build.gradle

apply plugin: "jacoco"

如果 Java 插件也被应用于你的项目,那么会创建一个名为 jacocoTestReport 的新任务,该新任务依赖于 test 任务。该报告可以在 $buildDir/reports/jacoco/test 中看到。默认情况下,会生成一个 HTML 报告。

配置 JaCoCo 插件

JaCoCo 插件添加一个名为 jacoco 类型为 JacocoPluginExtension 的 project 扩展,这个扩展允许在你的构建中配置 JaCoCo 所使用的默认值。

配置 JaCoCo 插件设置

build.gradle

jacoco

toolVersion = "0.6.2.201302030002"

reportsDir = file("$buildDir/customJacocoReportDir")

}

表 34.1. JaCoCo 属性的 Gradle 默认值

Property

Gradle 默认值

reportsDir

"$buildDir/reports/jacoco"

JaCoCo 报告配置

JacocoReport 任务可以用于生成不同格式的代码覆盖率报告。它实现了标准的 Gradle 类型 Reporting,并呈现了一个 JacocoReportsContainer 类型的报告容器。

配置测试任务

build.gradle

jacocoTestReport {

reports

xml.enabled false

csv.enabled false

html.destination "${buildDir}/jacocoHtml"

}

}

431c9f7319ae0a0860e6dfbc055319a8.png

JaCoCo 的特定任务配置

JaCoCo 插件添加了一个 JacocoTaskExtension 扩展到 Test 类型的所有任务中。该扩展允许配置 JaCoCo 中的测试任务的一些特定属性。

配置测试任务

build.gradle

test {

jacoco

append = false

destinationFile = file("$buildDir/jacoco/jacocoTest.exec")

classDumpFile = file("$buildDir/jacoco/classpathdumps")

}

}

表 34.2. JaCoCo 任务扩展的默认值

Property

Gradle 默认值

enabled

true

destPath

$buildDir/jacoco

append

true

includes

[]

excludes

[]

excludeClassLoaders

[]

sessionId

auto-generated

dumpOnExit

true

output

Output.FILE

address

-

port

-

classDumpPath

-

jmx

false

虽然 Test 的所有任务会在 java 插件被配置使用时会自动增强以提供覆盖率信息,但是任何实现了 JavaForkOptions 的任务都可以通过 JaCoCo 插件得到增强。也就意味着,任何 fork Java 进程的任务都可以用于生成覆盖率信息。

例如,你可以配置您的构建使用 application 插件来生成代码覆盖率。

使用 application 插件来生成代码覆盖率数据

build.gradle

apply plugin: "application"

apply plugin: "jacoco"

mainClassName = "org.gradle.MyMain"

jacoco {

applyTo run

}

task applicationCodeCoverageReport(type:JacocoReport){

executionData run

sourceSets sourceSets.main

}

注: 此示例中的代码可以在 Gradle 的二进制分发包及源代码分发包中的 samples/testing/jacoco/application 中找到。

由 applicationCodeCoverageReport 生成的覆盖率报告

构建布局

application

build

jacoco

run.exec

reports/jacoco/applicationCodeCoverageReport/html/

index.html

任务

对于同时也配置使用了 Java 插件的项目,JaCoCo 插件会自动添加以下任务:

表 34.3. JaCoCo 插件 - 任务

任务名称

依赖于

类型

描述

jacocoTestReport

-

JacocoReport

为测试任务生成代码覆盖率报告。

依赖管理

JaCoCo 插件添加了下列的依赖配置:

表 34.4. JaCoCo 插件 ​​- 依赖配置

名称

意义

jacocoAnt

用于运行JacocoMerge任务的 JaCoCo Ant 库。

jacocoAgent

用于测试位于test下的代码的 JaCoCo 客户端库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值