Python - coverage
2023-12-16 15:55:51
coverage
overage 是一个用于测量Python程序代码覆盖率的工具。它监视您的程序,注意代码的哪些部分已经执行,然后分析源代码,以确定哪些代码本可以执行,但没有执行。
覆盖率测量通常用于衡量测试的有效性。它可以显示代码的哪些部分正在由测试执行,哪些部分没有。
最新版本是coverage 7.3.2,发布于2023年10月2日。它支持于:
- Python 版本3.8到3.12。
- Python 版本3.8到3.10。
参考文章
官网:https://coverage.readthedocs.io/en/latest/config.html
代码说明
目录结构说明
业务代码
class CalcDemo:
def __init__(self, x, y):
self.x = x
self.y = y
def plus(self):
return self.x + self.y
def subtract(self):
return self.x - self.y
def multiply(self):
return self.x * self.y
def divide(self):
return self.x / self.y
测试代码
import unittest
from src.Demo import CalcDemo
class TestDemo(unittest.TestCase):
def test_plus(self):
self.assertEquals(CalcDemo(6, 4).plus(), 10)
def test_subtract(self):
self.assertEquals(CalcDemo(6, 4).subtract(), 2)
def test_multiply(self):
self.assertEquals(CalcDemo(1, 5).multiply(), 5)
配置文件
[run]
# 是否统计条件语句的分支覆盖情况。if 条件语句中的判断通常有 True 和 False 两种情况,设置 branch = True 后,Coverage 会测量这两种情况是否都被测试到。
branch = True
# 指定需统计的源代码目录,这里设置为当前目录(即项目根目录)。
source = src
[report]
# 在生成的统计报告中显示未被测试覆盖到的代码行号。
show_missing = True
执行生成报告文件
import unittest
import coverage
if __name__ == "__main__":
# 测试目录
testPath = ['test', 'test/demo', 'test/system']
# 实例化对象
cov = coverage.coverage()
# 开始分析
cov.start()
# 创建用例集
suite = unittest.TestSuite()
for path in testPath:
suite.addTest(unittest.defaultTestLoader.discover(path, "*.py", path))
unittest.TextTestRunner().run(suite)
# 结束分析
cov.stop()
# 结果保存
cov.save()
# 命令行模式展示结果
cov.report()
# 生成HTML覆盖率报告
cov.html_report(directory='ResultHtml')
报告结果
文章来源:https://blog.csdn.net/qq_43935317/article/details/135032694
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!