课程表

Gradle课程

工具箱
速查手册

Gradle JaCoCo 插件

当前位置:免费教程 » 软件/图像 » Gradle

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

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

入门

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

应用 JaCoCo 插件

build.gradle

  1. apply plugin: "jacoco"

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

配置 JaCoCo 插件

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

配置 JaCoCo 插件设置

build.gradle

  1. jacoco
  2. toolVersion = "0.6.2.201302030002"
  3. reportsDir = file("$buildDir/customJacocoReportDir")
  4. }

表 34.1. JaCoCo 属性的 Gradle 默认值

Property Gradle 默认值
reportsDir "$buildDir/reports/jacoco"

JaCoCo 报告配置

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

配置测试任务

build.gradle

  1. jacocoTestReport {
  2. reports
  3. xml.enabled false
  4. csv.enabled false
  5. html.destination "${buildDir}/jacocoHtml"
  6. }
  7. }

JaCoCo 的特定任务配置

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

配置测试任务

build.gradle

  1. test {
  2. jacoco
  3. append = false
  4. destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
  5. classDumpFile = file("$buildDir/jacoco/classpathdumps")
  6. }
  7. }

表 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

  1. apply plugin: "application"
  2. apply plugin: "jacoco"
  3. mainClassName = "org.gradle.MyMain"
  4. jacoco {
  5. applyTo run
  6. }
  7. task applicationCodeCoverageReport(type:JacocoReport){
  8. executionData run
  9. sourceSets sourceSets.main
  10. }

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

由 applicationCodeCoverageReport 生成的覆盖率报告

构建布局

  1. application
  2. build
  3. jacoco
  4. run.exec
  5. reports/jacoco/applicationCodeCoverageReport/html/
  6. index.html

任务

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

表 34.3. JaCoCo 插件 - 任务

任务名称 依赖于 类型 描述
jacocoTestReport - JacocoReport 为测试任务生成代码覆盖率报告。

依赖管理

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

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

名称 意义
jacocoAnt 用于运行JacocoMerge任务的 JaCoCo Ant 库。
jacocoAgent 用于测试位于test下的代码的 JaCoCo 客户端库。
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号