覆盖测试通过代码分析工具和跟踪钩子来判断哪些代码可执行以及哪些代码被执行了,是对单元测试的有效补充,可以用来判断测试的有效性。

Python扩展库coverage可以实现对Python代码的覆盖测试,使用pip工具安装之后,可以使用命令“coverage run file.py”对Python程序file.py进行覆盖测试,然后使用命令“coverage report”直接查看测试报告,或者使用命令“coverage html”生成HTML文件的测试报告,这些HTML文件自动保存在htmlcov文件夹中。可以使用命令“coverage help”查看coverage支持的所有命令。

例如,有下面的代码用来判断一个整数是否为素数:
from random import randint

def isPrime(n):
    for i in range(2, int(n**0.5)+1):
        if n%i == 0:
            return 'No'
    else:
        return 'Yes'

n = randint(3, 2000)
print(n, ':', isPrime(n))

把上面的代码保存为isPrime.py,然后在命令提示符环境中首先执行命令“coverage run isPrime.py”测试,再执行命令“coverage report”查看测试报告。-m选项用来显示没有被执行到的代码行号,可以使用命令“coverage report -h”查看更多选项。
C:\Python 3.5>coverage run isPrime.py
1862 : No

C:\Python 3.5>coverage report
Name         Stmts   Miss  Cover
--------------------------------
isprime.py       8      1    88%

C:\Python 3.5>coverage report -m
Name         Stmts   Miss  Cover   Missing
------------------------------------------
isprime.py       8      1    88%    8

另外,扩展库coverage还提供了编程接口支持代码覆盖测试。例如,把上面的素数判断程序修改为下面的代码并执行,会自动生成测试报告。
import coverage
from random import randint

cov = coverage.Coverage()
cov.start()

def isPrime(n):
    for i in range(2, int(n**0.5)+2):
        if n%i == 0:
            return 'No'
    else:
        return 'Yes'

n = randint(3, 2000)
print(n, ':', isPrime(n))

cov.stop()
cov.save()
cov.html_report()

Python代码覆盖性测试入门相关推荐

  1. 100例Python代码带你从入门到进阶!

    以下所有代码全都至少运行一遍,确保可复现.易于理解.逐步完成入门到进阶的学习. 此教程经过我 反复打磨多遍 ,经常为此熬夜,真心不易,文章比较长,看完有用,帮我点个在看或分享支持. 教程包括 62 个 ...

  2. 初学者怎样看懂python代码_Python零基础入门-(如何让人读懂你的代码)文档注释

    目标注释的作用 单行注释(行注释) 多行注释(块注释) 01. 注释的作用使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性 02. 单行注释(行注释)以 # 开头,# 右边的所有 ...

  3. Python代码详解:入门时间序列分类

    我们接触的大多数时间序列数据主要涉及产生预测的交易.无论是预测产品的需求还是销售额,[航空公司]的乘客数量或特定股票的收盘价,我们都习惯于利用久经考验的时间序列技术来预测需求. 但随着生成的数据量呈指 ...

  4. 长短时记忆神经网络python代码_零基础入门深度学习(6) - 长短时记忆网络(LSTM)

    无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...

  5. python平均入门时间_理论+Python代码详解:入门时间序列分类

    对时间序列进行分类?这真的有可能吗?这会有什么用呢? 我们接触的大多数时间序列数据主要涉及产生预测的交易.无论是预测产品的需求还是销售额,航空公司的乘客数量或特定股票的收盘价,我们都习惯于利用久经考验 ...

  6. python代码测试_Python入门学习系列——Python代码测试

    Python代码测试 对于编写的代码,可以使用unittest模块中的相关方法进行测试. 测试函数 首先定义一个简单的函数,该函数用来合并名称并返回. name_function.py: def ge ...

  7. python入门代码-Python入门学习系列——Python代码测试

    Python代码测试 对于编写的代码,可以使用unittest模块中的相关方法进行测试. 测试函数 首先定义一个简单的函数,该函数用来合并名称并返回. name_function.py: def ge ...

  8. python代码覆盖率测试_unittest+coverage单元测试代码覆盖操作实例详解_python

    这篇文章主要为大家详细介绍了unittest+coverage单元测试代码覆盖操作的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 基于上一篇文章,这篇文章是关于使用coverage来实现代码 ...

  9. 基于hadoop的商品推荐系统_[零基础入门推荐系统(1)]基于用户和基于物品的协同过滤方法(python代码实现)...

    1. 前言: 为什么会有该系列? 最近,打算写<零基础入门推荐系统>系列,为了系统地介绍推荐系统知识,以及加强基础的实践能力. 该系列将结合一些书籍,比如项亮的<推荐系统实践> ...

最新文章

  1. php ecos,php
  2. 使用CSDN的Markdown编辑器
  3. JavaScript --- 渲染数据量大的数组
  4. linux cp 强制yes,linux cp实现强制覆盖
  5. 解决Centos 7安装在虚拟机中没有图形界面的问题
  6. w ndows10怎么联网,windows10所有uwp应用都无法联网的两种解决方法
  7. 3.5用户访问使用HTTPS
  8. beego使用php,使用GO语言Beego框架开发一个简易留言板
  9. 写jsx_使用Vue 3.0做JSX(TSX)风格的组件开发
  10. 工科数学分析之数学感悟
  11. 微信表白神秘代码!快发给ta!
  12. Intel Core系列CPU架构演变
  13. 皮尔森 统计学相关性分析_【R语言】读懂Pearson相关分析结果
  14. 概率的性质——连续性
  15. 不用编程,实现三菱FX5U与罗克韦尔(AB)PLC之间实时通讯
  16. 我是如何走上CSDN这条路的
  17. MOOC《程序设计入门——C语言》错题集
  18. 语音数字采集芯片--Digilent 公司pmodmic 芯片
  19. 谱密度 matlab,(完整word版)功率谱密度估计方法的MATLAB实现
  20. 试一试你就知道:做到自控和自律也不是那么难!!

热门文章

  1. php中global什么意思,php中global与$GLOBAL的用法及区别(转载)
  2. androidtv item获取焦点设置动画和背景_动画技术的交互应用所作的动画
  3. mvc ajax提交html标签,Mvc提交表单的四种方法全程详解
  4. php6.2手机端网站,网站开发-php开发手机论坛(6)-登陆注册(2)
  5. 数据分析师能用到mysql_浅谈数据分析师的必备技能SQL
  6. sql server实例内存使用统计
  7. java中singleton_Singleton是什么,在Java中如何实现
  8. bootstrap-switch 不起作用 class处显示代码_注解KafkaListener不起作用,到底发生了啥?...
  9. maven构建MyBatis项目
  10. linux下安装Jira6.3