-cov:代码覆盖率的守护者
最近狗哥发现不少小伙伴在问如何检查代码的测试覆盖率。今天就给大家介绍一个超级实用的工具:-cov。它能帮我们清晰地看到代码的哪些部分被测试覆盖到了html颜色代码,哪些还没有,就像一个尽职尽责的小管家!
安装和基本使用
我们需要安装-cov:
1pip install pytest-cov
假设我们有这样一个简单的计算器模块(calc.py):
1def add(a, b):
2 return a + b
3
4def subtract(a, b):
5 return a - b
6
7def multiply(a, b):
8 return a * b
9
10def divide(a, b):
11 if b == 0:
12 raise ValueError(“除数不能为0哦”)
13 return a / b
对应的测试文件(.py):
1from calc import add, subtract
2
3def test_add():
4 assert add(1, 2) == 3
5 assert add(-1, 1) == 0
6
7def test_subtract():
8 assert subtract(3, 1) == 2
运行覆盖率测试
要检查代码覆盖率,只需要在运行时加上--cov参数:
1pytest --cov=calc test_calc.py
运行后,狗哥发现终端输出了这样的结果:
1Name Stmts Miss Cover
2-----------------------------
3calc.py 8 3 63%
小贴士 :这告诉我们calc.py文件中有8个语句,其中3个没有被测试覆盖到,总覆盖率是63%。
生成详细报告
想知道具体哪些代码没被测试到?加上--cov-=html参数就能生成一个漂亮的HTML报告:
1pytest --cov=calc --cov-report=html test_calc.py
在生成的目录下打开index.html,就能看到详细的覆盖率报告,每一行代码都会用不同的颜色标记:
提高覆盖率的小技巧
分支覆盖 :别忘了测试各种条件分支,比如我们的除法函数:
def ():
(6, 2) == 3
with .():
(1,0) # 测试除数为0的情况
边界值测试 :测试一些特殊的输入值:
def l():
(0html颜色代码, 100) == 0 # 0相乘
(-2, 3) == -6 # 负数相乘
注意事项 :
小伙伴们,今天的学习之旅就到这里啦!记得动手敲代码,有问题随时在评论区问狗哥哦。祝大家学习愉快,学习节节高!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。