一、python工具diff-cover介绍
diff-cover是一个针对python语言生成代码覆盖率的工具,并且能更好的生成增量代码覆盖率报告。diff--cover需要与coverage一起使用。、
二、diff-cover 安装,可以使用pip安装
pip install diff-cover
三、在功能测试过程中,使用coverage收集当前分支代码覆盖率结果,生成代码覆盖率报告
1.安装coverage
安装coverage.py模块,可以使用pip命令来进行安装
pip install coverage
2.增加coverage应用,实现在功能测试用例执行过程中,收集代码覆盖率
本文以python项目的django框架为例,将coverage应用到wsgi.py项目中,即可生成功能测试的代码覆盖率报告,如下图
3.从远程master拉取代码,本地启动项目
1.执行 python manage.py runserver,启动项目
2.浏览器访问服务地址,进行测试用例执行,执行结束后,停止服务,查看覆盖率报告
以下图python文件为例,可以通过代码覆盖率报告得知功能测试覆盖到了10-12行,11-12行
3.本地针对该文件修改,然后按照上述步骤启动项目,用例执行,查看代码覆盖率报告
改动点如下:左侧是远程master分支,右侧是本地修改的分支
执行用例,查看报告,从报告中得出,新增的代码是没有被执行的
四、diff-cover应用
(上边只是一行代码,能明确知道新增了一行并且没有被执行到,但是在业务复杂代码修改比较多的情况下,diff-cover可以帮助测试人员给出较清晰的增量覆盖率报告)
1.在代码修改后的项目中,用例执行完成并且生成本次覆盖率报告后,到.coverage目录下,执行以下命令,生成xml格式的covergae文件
coverage xml -o coverage.xml
2.明确要对比的分支,例如远程主分支(master),执行以下命令得到当前测试分支与主分支的增量代码覆盖率报告
diff-cover coverage.xml --compare-branch=origin/master --html-report coverage_diff.html
如下图,通过diff-cover工具,可以快速清晰的生成增量代码覆盖率报告,包括差异文件行、未覆盖行、未覆盖行数、增量覆盖率情况等