接着昨天的写,昨天讲到jacoco可以test任务中配置,形式如下:
~~~
test {
useTestNG();
jacoco{
......
}
}
~~~
之前的文章讲了append和destinaFile这两个属性,下面接着讲第三个属性。
## 3.classDumpFile
将jacoco检测到的class文件保存到的文件
build.gradle
~~~
test {
useTestNG();
jacoco{
append = false
destinationFile = file("$buildDir/doctor/doctorq.exec")
classDumpFile = file("$buildDir/doctor/class")
}
}
~~~
执行gradle clean test后,会发现多了一个build/doctor/class文件:
![](https://box.kancloud.cn/2016-01-07_568e466cef065.jpg)
这里面的文件和exec文件里列举的一样。这个属性不太需要,过了!
## 不止是test任务
我们之前讲的所有关于jacoco的内容,都是收集test任务的代码覆盖率。但是jacoco不只是用于这样一个测试任务,由于jacoco的原理是在jvm环境中进行插桩监控jvm中被调用的代码,那么只要是在java进程中执行的任务,都可以用jacoco来收集信息。好,下面来举例说明:当我们执行java程序main方法时,也可以通过jacoco来收集main方法的代码覆盖率。
新增main方法:
~~~
public class MyMain {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Person person = new Person("Larry");
System.out.println(person.getName());
}
}
~~~
build.gradle中新增任务
~~~
jacoco{
toolVersion = "0.7.1.201405082137"
reportsDir = file("$buildDir/customJacocoReportDir")
applyTo run
}
task applicationCodeCoverageReport(type:JacocoReport){
executionData run
sourceSets sourceSets.main
}
~~~
我们执行run任务再执行applicationCodeCoverageReport任务,看结果输出
~~~
D:\eclipse\workspare\TestNG_gradl>gradle clean run applicationCodeCoverageRepor
:clean
:compileJava
:processResources
:classes
:run
Larry
:applicationCodeCoverageReport
BUILD SUCCESSFUL
Total time: 6.333 secs
~~~
然后看代码覆盖率的报告
![](https://box.kancloud.cn/2016-01-07_568e466d09d5a.jpg)
![](https://box.kancloud.cn/2016-01-07_568e466d281d4.jpg)
上面的例子中我们测试了main方法代码覆盖率,还有很多其他的任务可以获得代码覆盖率信息,等待我以后了解了再添加。
- 前言
- gradle学习(1)-helloworld
- gradle学习(2)-基础语法
- gradle学习(3)-基础认识
- gradle学习(4)-构建java项目
- gradle学习(5)-创建eclipse项目
- gradle学习(6)-依赖管理
- gradle学习(7)-groovy
- gradle学习(8)-gradle的命令行
- gradle学习(9)-获取build相关信息
- gradle学习(10)-gui
- gradle学习(11)-编写构建脚本
- gradle学习(12)-groovy一些基础语法
- gradle学习(13)-有的没的
- gradle学习(14)-任务
- gradle学习(15)-任务
- gradle学习(16)-操作文件
- gradle学习(17)-被合并的ant
- gradle学习(18)-ant的属性
- gradle学习(19)-log系统
- gradle学习(20)-详解java插件
- gradle学习(21)-在eclipse中构建java项目
- gradle复习(1)-2种定义任务方式的区别
- gradle复习(2)-eclipse中添加依赖jar包
- gradle复习(3)-在gradle项目中使用TestNG
- gradle复习(4)-Cannot find System Java Compiler
- gradle复习(5)-Test remote debug
- gradle复习(6)-深入Jacoco
- gradle复习(7)-深入Jacoco
- gradle复习(8)-Task中行为
- gradle学习(22)-Sonar
- gradle学习(23)-Sonar runner