Gitlab上的readme显示单元测试覆盖率
Gitlab上的readme显示单元测试覆盖率
公司的项目需要需要很直观的看到单元测试的覆盖率,于是研究了一下。其实在gitlab的官网上,是有一个demo的。示例如下图:
要把这个链接粘到README.md的行首才可以,不然会读不出数据。具体的数据就要从jacoco的报告中进行读取,那个正在解析的值就是算出来的值。
1 在Gitlab CI yaml中的进行配置,就是最后一行重要,算出的其实一个是值。
# 静态扫描
static_scan:
<<: *staticScanDef
image: dk.uino.cn/sonar/maven:1.0.13
script:
# 扫描路径sonar.sources需要对应修改,也可以在根目录下新建sonar-project.properties文件配置,不过没有-D。
# update by WGR. soanrqube 8以后只能通过sonar.coverage.jacoco.xmlReportPaths这个整合覆盖率
- kiss -Dsonar.sources=src -Dsonar.exclusions=**/test/**,**/target/** -Dsonar.java.coveragePlugin=jacoco -Dsonar.coverage.jacoco.xmlReportPaths=/builds/uino-framework/framework/framework-web/target/site/jacoco/jacoco.xml
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print 100 *covered/instructions, "% covered" }' /builds/uino-framework/framework/framework-web/target/site/jacoco/jacoco.csv
# allow_failure: true
2.在上面一开始的那个图配置解析的正在表达式
\d+.\d+ \% covered
在github上有人提出来:https://github.com/jacoco/jacoco/pull/488
3.最终结果就可以展示出来了