代码覆盖率作为一个指导性指标,可以一定程度上反应测试的完备程度,虽然100%覆盖的代码并不意味着100%无bug的应用,但是较高的覆盖率一般情况下也意味着更少的bug。近期笔者参与的一个项目代码量不断膨胀,但是自动化测试还不够完备,单纯依赖人工测试很容易出现旧功能受影响或测试遗漏的情况。为了降低测试对人力的消耗,尝试引入自动化测试对部分功能进行覆盖,并用增量代码覆盖率统计查看是否有测试点遗漏。这篇文章主要讲一个增量代码覆盖率的实现。
实现说明
这里简单说明下PHP增量代码覆盖率统计功能的实现方式,供感兴趣的同学参考
环境依赖
-
xdebug: php插件,用于收集覆盖率信息1. git: 利用git diff获取增量代码信息1. php-code-coverage: phpunit下的一个库,用于从xdebug收集的覆盖率信息中生成覆盖率统计报告,支持xml、html等多种格式。本文基于6.0.7改造以支持增量覆盖率统计,利用1.和2.中获取的信息生成增量覆盖率统计报告
具体实现说明如下: -
xdebug安装首先下载插件,xdebug官方下载地址: