最近项目组想推增量测试覆盖度统计,让我先行调研相关工具。后来在github 上找到这个diff_cover工具,基于python2.7开发,支持解析多种工具生成的.Xml格式报告:
•Cobertura (Java)
•Clover (Java)
•JaCoCo (Java)
•coverage.py (Python)
•JSCover (JavaScript)
因为已经部署好jacoco,此工具可以不用太大的改动下完成增量统计,故而选用他。
项目地址:
但是在部署过程中反复出现了一个问题,总报异常
No lines with coverage information in this diff
浏览各种博文也未果,没办法去看项目的源码,好在开发者各种注释清洗文件结构做的漂亮,很快就解决了,源码有这么一段:
可以很清楚看到该工具拿diff 是通过
git diff ${版本号/分支名}...HEAD
所以该diff 较的是你输入版本和当前工作区的差异。如果遇到了该问题,就去执行这个git 命令,看有没有差异,要么是你的版本号输的有问题,要么是你当前工作区的版本有问题,朝这个方向查就行。
git 命令执行正常情况应为如下图所示,列出两个版本的详细差异:
正常无误后执行:
diff-cover report.xml --html-report report.html --compare-branch ${版本号/分支名}
出现如图所示即为成功:
另外跟其他人沟通还有一个问题就是branch 名输错了。可以用以下名称查看分支名:
git branch -a
以及。。重要的事情说三遍:
不支持windows 环境!
不支持windows 环境!
不支持windows 环境!