
使用coveralls统计测试覆盖率
coveralls可以持续跟踪代码的测试覆盖率。 为了让它能够跟踪到测试覆盖率,需要测试的时候生成覆盖率数据,并提供给coveralls service。
生成测试覆盖率数据H2
jacoco和cobertura都可以用来统计代码的测试覆盖率,并且各自都有gradle和maven的插件。下面以gradle为例进行讨论。
bash
apply plugin: "jacoco"
通过上述配置启用jacoco插件。启用后,按照官方文档说法,如果同时启用了Java插件的话,那么任务jacocoTestReport将会被创建并且它依赖于test任务,但是实际运行的时候发现它并没有依赖于test任务
bash
:compileJava:compileGroovy:processResources:classes:jacocoTestReport SKIPPED
并且直接运行的话,它会被跳过。
jacocoTestReport任务是用来发布jacoco报告的,它依赖于jacoco的测试覆盖率数据文件text.exec。 如果启用了jacoco插件,测试覆盖率数据文件会在test任务执行的时候生成,位于build/jacoco目录下。
在生成这个文件的前提下,执行jacocoTestReport任务,就会在build/reports/tests/jacoco目录生成报告,默认生成HTML格式的报告。
上传coverallsH2
jacoco生成的报告需要上传给coveralls才能显示。Maven的话通过coveralls-maven-plugin可以实现,gradle则使用插件coveralls-gradle-plugin。
bash
plugins {id 'jacoco'id 'com.github.kt3k.coveralls' version '2.6.3'}
它插件依赖于jacoco生成的XML报告,因此需要配置jacoco
bash
jacocoTestReport {reports {xml.enabled = truehtml.enabled = true}}
CI服务器H2
最后coveralls需要配合一个CI服务器,持续地对代码的测试覆盖率进行统计,支持Travis CI、Jenkins等多种CI服务器。
以Travis为例,需要在构建的最后执行上面的提到的,生成测试覆盖率报告并上传的任务
bash
after_success:- ./gradlew jacocoTestReport coveralls
评论
新的评论
上一篇
用Spring data rest开发基于HATEOAS的API
概念 首先,HATEOAS (Hypermedia as the Engine of Application State) 是REST应用架构的一个约束。一个 hypermedia-driven 的站点通过响应中的超媒体链接动态地提供了导航到站点的REST接口的信息。 下面是一…
下一篇
CICD Renewal
持续集成 依然使用Gitlab CI作为CI工具,一些重要的特性 通过service 使用dind 通过 dotenv 传递任务间的环境变量 强大的rules设置:仅PR时触发CI 阶段和任务 build build gradle/npm build test code_a…
