Python代码覆盖率工具coverage使用教程
2021-05-04 22:28
标签:library 基于 命令 src cmd addition 公众 line install Python代码覆盖率工具coverage.py其实是一个第三方的包,同时支持Python2和Python3版本。 首先我们编写一个简易计算器的程序: 接着来编写基于unittest的单元测试用例: 下面打开CMD命令窗口并进入代码文件所在目录。 2.生成覆盖率报告 -m参数表示显示有哪些行没有被覆盖。 3.生成HTML报告 运行后在代码文件所在目录生成了htmlcov文件夹,打开index.html查看报告 点击报告中的mymath.py,可以打开该文件的覆盖详情,会飘红展示哪些代码未被运行。 -------------------------------------------------------------------------------- 关注微信公众号(测试工程师小站)即可在手机上查阅,并可接收更多测试分享,发送【测试资料】更可获取百G测试教程~ Python代码覆盖率工具coverage使用教程 标签:library 基于 命令 src cmd addition 公众 line install 原文地址:https://www.cnblogs.com/songzhenhua/p/13194232.html
安装也非常简单,直接运行:pip install coverage
# mymath.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(numerator, denominator):
return float(numerator) / denominator
# test_mymath.py
import mymath
import unittest
class TestAdd(unittest.TestCase):
"""
Test the add function from the mymath library
"""
def test_add_integers(self):
"""
Test that the addition of two integers returns the correct total
"""
result = mymath.add(1, 2)
self.assertEqual(result, 3)
def test_add_floats(self):
"""
Test that the addition of two floats returns the correct result
"""
result = mymath.add(10.5, 2)
self.assertEqual(result, 12.5)
def test_add_strings(self):
"""
Test the addition of two strings returns the two string as one
concatenated string
"""
result = mymath.add(‘abc‘, ‘def‘)
self.assertEqual(result, ‘abcdef‘)
if __name__ == ‘__main__‘:
unittest.main()
1.使用coverage命令运行测试用例coverage run test_mymath.py
coverage report -m
可以看到计算器程序mymath.py的测试覆盖率是62%,其中13,17,21行未运行。coverage html
因为我们的单元测试代码只是测试了mymath.add(),所以其他函数里的代码未被覆盖,这时就需要我们补充测试用例了。
文章标题:Python代码覆盖率工具coverage使用教程
文章链接:http://soscw.com/index.php/essay/82456.html