您的位置:首页 > 其它

Gradle 1.12用户指南翻译——第三十四章. JaCoCo 插件

2015-06-29 09:08 441 查看
本文由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 默认值

PropertyGradle 默认值
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 任务扩展的默认值

PropertyGradle 默认值
enabledtrue
destPath
$buildDir
/jacoco
appendtrue
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
用于运行
JacocoReport
JacocoMerge
任务的
JaCoCo Ant 库。
jacocoAgent
用于测试位于test下的代码的 JaCoCo 客户端库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: