第十五章 测试(四)

使用Coverage.py计算测试覆盖率

       对于测试的质量,有一个重要的考虑指标----测试覆盖率(test coverage)。100%的测试覆盖率是理想目标,但有些时候并不是那么容易实现。对于大多数项目来说,应该尽量将测试覆盖率保持在90%左右。

       Coverage.py是一个使用python编写的检查代码覆盖率的工具,我们可以使用它来检查测试覆盖率,首先使用pipenv安装它:

pipenv install coverage --dev

一. 基本用法 

       Coverage.py提供了命令行支持,使用起来非常简单。为了演示Coverage.py用法,使用下面一个简单的python脚本演示一下:

def func1():
    print("123")


def func2():
    print("456")


if __name__ == "__main__":
    func1()

       coverage run命令用来执行脚本并计算代码执行覆盖率,命令后要附 加脚本文件名作为执行的目标:

       这会在脚本所在目录生成一个.coverage文件,其中包含了运行的结 果数据。我们使用coverage report命令来输出覆盖率报告:

       通过报告我们可以看出,这个脚本代码的执行情况,一共有6行代码,1行没有执行,覆盖率为83%。 除了在命令行中输出覆盖率报告,我们还可以使用coverage html来 查看HTML版本的覆盖率报告:

coverage html

       这会在脚本所在目录生成一个htmlcov文件夹,使用浏览器打开其 中的index.html文件可以看到HTML格式的覆盖率报告主页,如下:

       单击对应的脚本,我们还可以查看使用颜色标出代码执行的具体覆盖情况,点击"hahaha.py"可进入如下界面:

扫描二维码关注公众号,回复: 10514309 查看本文章

       最后使用coverage erase可以清除 coverage report产生的.coverage文件:

二. 获取测试覆盖率

       我们可以使用下面的命令在运行测试的同时开启覆盖率检查,这样 就可以获取测试覆盖率:

coverage run --source=app --branch -m unittest discover

 

       同样,coverage report获取测试报告:

coverage report

       整体覆盖率为67%,其中model.py中的代码覆盖率很不错。接下来,获取更为详细的html测试覆盖率报告:

coverage html

发布了132 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Geroge_lmx/article/details/104850501