spring-gradle-代码覆盖测试
/ / 阅读耗时预计 2 分钟单元测试、代码覆盖率
接着上一篇《spring-junit-jacoco代码覆盖测试》,本篇介绍一下如何gradle单元测试、代码覆盖率。
准备
- gradle。请自行安装好gradle
使用maven转为gradle项目
在项目根目录下执行如下命令把maven项目转为gradle项目。
1 | gradle init --type pom |
命令执行完毕之后刷新项目可以看到项目目录下已经有gradle的配置build.gradle
、settings.gradle
等配置。
修改settings.gradle
里面的项目名称,改为coverage-spring-gradle
。如果不改为和项目同名字使用gradle编译的时候会报错。
1 | org.eclipse.buildship.core.UnsupportedConfigurationException: Project at '/Users/ubuntuvim/codes/java_keeping/coverage-spring-gradle' can't be named 'coverage-spring-gradle33' because it's located directly under the workspace root. If such a project is renamed, Eclipse would move the container directory. To resolve this problem, move the project out of the workspace root or configure it to have the name 'coverage-spring-gradle'. |
删除maven依赖文件
使用gradle之后就不需要maven的文件了,删除master-lib
,coverage.xml
,compile.xml
,jacocolib
。
项目右键 –> gradle –> refresh gradle project。之后项目结构如下图:
运行生成单元测试报告
打开gradle视图
可以看到gradle已经提供了很多任务,直接运行即可,我们不需要像使用Ant一样自己编写一大堆的脚本。
直接运行build
-> build
这个任务。稍等执行完毕之后,刷新项目,打开项目目录下build
目录,展开之后可以看到一个index.html。这个文件就是单元测试报告。
生成一个单元测试报告就是这么简单,什么脚本都不需要写了,gradle已经帮你做好。
生成覆盖率报告
要构建一个覆盖率报告也是非常简单的。仍然是使用gradle提供好的插件,修改build.gradle
,在文件中增加覆盖率插件。
增加覆盖率插件
首先引入jacoco插件。在build.gradle
第三行增加:
1 | apply plugin: 'jacoco' |
在这个文件末尾增加如下配置:
1 | // jacoco任务配置 |
生成覆盖率报告
进入项目根目录,直接如下命令即可生成覆盖率报告。
1 | gradle clean test jacocoTestReport |
执行过程需要下载一下依赖jar,稍等几分钟之后刷新项目,一步步展开build
目录。
打开index.html
可以看到详细报告内容。
使用gradle是在简单很多,根本不需要你编写一大堆的脚本。非常爽。
项目源码
https://github.com/ubuntuvim/coverage/tree/coverage-spring-gradle