本文由CSDN博客万一博主翻译,其他章节的翻译请参见:

http://blog.csdn.net/column/details/gradle-translation.html

翻译项目请关注Github上的地址:

https://github.com/msdx/gradledoc/tree/1.12。

直接浏览双语版的文档请访问:

http://gradledoc.qiniudn.com/1.12/userguide/userguide.html。

另外,Android 手机用户可通过我写的一个程序浏览文档,带缓存功能的,目前0.2.1版本兼容 android 2.2以上系统,地址如下:

http://www.wandoujia.com/apps/com.githang.gradledoc

翻译不易,转载请注明本文在CSDN博客上的出处:

http://blog.csdn.net/maosidiaoxian/article/details/46646311

关于我对Gradle的翻译,以Github上的项目及http://gradledoc.qiniudn.com 上的文档为准。如有发现翻译有误的地方,将首先在以上两个地方更新。因时间精力问题,博客中发表的译文基本不会同步修改。

第三十四章. JaCoCo 插件

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

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

34.1.
入门

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

示例 34.1. 应用 JaCoCo 插件

build.gradle

apply plugin: "jacoco"

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

34.2.
配置 JaCoCo 插件

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

示例 34.2. 配置 JaCoCo 插件设置

build.gradle

jacoco
    toolVersion = "0.6.2.201302030002"
    reportsDir = file("$buildDir/customJacocoReportDir")
}

表 34.1. JaCoCo 属性的 Gradle 默认值

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

34.3.
JaCoCo 报告配置

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

示例 34.3. 配置测试任务

build.gradle

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


34.4.
JaCoCo 的特定任务配置

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

示例 34.4. 配置测试任务

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插件来生成代码覆盖率。

示例 34.5. 使用 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中找到。

示例 34.6. 由 applicationCodeCoverageReport 生成的覆盖率报告

构建布局

application
  build
    jacoco
      run.exec
    reports/jacoco/applicationCodeCoverageReport/html/
      index.html

34.5.
任务

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

表 34.3. JaCoCo 插件 - 任务

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

34.6.
依赖管理

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

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

名称 意义
jacocoAnt 用于运行JacocoReportJacocoMerge任务的
JaCoCo Ant 库。
jacocoAgent 用于测试位于test下的代码的 JaCoCo 客户端库。

Gradle 1.12用户指南翻译——第三十四章. JaCoCo 插件的更多相关文章

  1. Gradle 1.12用户指南翻译——第三十九章. IDEA 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  2. Gradle 1.12用户指南翻译——第三十五章. Sonar 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  3. Gradle 1.12用户指南翻译——第三十二章. JDepend 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  4. Gradle 1.12用户指南翻译——第三十六章. Sonar Runner 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  5. Gradle 1.12用户指南翻译——第五十二章. Maven 插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上 ...

  6. Gradle 1.12用户指南翻译——第六十四章. 发布到Ivy(新)

    其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上的地址:https://gith ...

  7. Gradle 1.12用户指南翻译——第六十五章. Maven 发布(新)

    其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上的地址:https://gith ...

  8. Gradle 1.12用户指南翻译——第三十八章. Eclipse 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  9. Gradle 1.12用户指南翻译——第三十一章. FindBugs 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

随机推荐

  1. paypal的IPN机制

    paypal对接时发现有这么一个机制,看起来还不错,起到了防止篡改欺诈行为,保证了通信的安全性,但会增加几次通信.

  2. Vibrator控制手机震动

    Vibrator控制手机震动 效果图 源码 下载地址(Android Studio工程):http://download.csdn.net/detail/q4878802/9049755 添加权限 & ...

  3. 最近邻查找算法kd-tree

    http://blog.csdn.net/pipisorry/article/details/52186307 )选择特征(坐标轴)的方法  (2)以该特征的哪一个为界 (3)达到什么条件算法结束. ...

  4. Java中for_each循环的使用

    最近在看一些和安卓相关的书籍,看到了for_each这种循环结构,这是为了简化java的for循环而改造的一种方便使用的格式. 格式如下: for(数据类型 变量:集合) 语句块 接下来看一个例程: ...

  5. JAVA之旅(三十四)——自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫

    JAVA之旅(三十四)--自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫 我们接着来说网络编程,TCP 一.自定义服务端 我们直接写一个服务端,让本机去连接 ...

  6. PullToRefreshScrollView 嵌套RecyclerView实现特卖列表倒计时抢购

    不久之前,我们谈到了通过Handler与timer及TimerTask结合实现倒计时抢购列表,那个是PullToRefreshListView实现的,今天要讲的是PullToRefreshScroll ...

  7. 皮尔森相似度计算举例(R语言)

    整理了一下最近对协同过滤推荐算法中的皮尔森相似度计算,顺带学习了下R语言的简单使用,也复习了概率统计知识. 一.概率论和统计学概念复习 1)期望值(Expected Value) 因为这里每个数都是等 ...

  8. 11 PopupMenu菜单和代码例子

    PopupMenu 弹出式菜单 API 11以上可用 1. 获取弹出菜单的对象 2. 在res里的menu添加菜单项 3. 将布局里的菜单项 给弹出菜单 4. 进行监听弹出菜单 5. 展示出弹出菜单 ...

  9. UNIX网络编程——心跳包

    所谓的心跳包就是在客户端和服务器端间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包. 一般是用来判断对方(设备,进程或其它网元)是否正常动行,一般采用定 ...

  10. HDFS追本溯源:HDFS操作的逻辑流程与源码解析

    本文主要介绍5个典型的HDFS流程,这些流程充分体现了HDFS实体间IPC接口和stream接口之间的配合. 1. Client和NN Client到NN有大量的元数据操作,比如修改文件名,在给定目录 ...