首页 > 编程语言 >Python代码覆盖性测试入门

Python代码覆盖性测试入门

时间:2023-06-09 20:02:54浏览次数:35  
标签:入门 覆盖性 代码 py Python coverage report isPrime


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

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 : NoC:\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 randintcov = 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()

标签:入门,覆盖性,代码,py,Python,coverage,report,isPrime
From: https://blog.51cto.com/u_9653244/6450976

相关文章

  • 改造Python中文拼音扩展库pypinyin补充自定义声母全过程
    问题要从昨天说起,应根球老师发给我一个代码问可能是啥原因,如下:该函数的第二个参数3含义为只保留声母,为啥“应”的声母丢了呢?因为当时正是课间休息,一会儿还要上课,没时间多想,感觉或许是lazy_pinyin()函数的问题,毕竟是个懒惰的函数嘛,于是告诉应老师试试其他函数。今天早上来教研室以后......
  • Python运算符is与==的区别
    在Python中,关系运算符==用来测试两个对象的值是否相等,而同一性测试运算符is用来测试两个对象是否是同一个对象,如果两个变量是同一个对象,那么它们的内存地址是一样的,当然它们的值肯定也是一样的。并且,如果两个变量是同一个列表或其他类型的可变序列,在某些操作中通过一个变量可以影响......
  • 使用Python提取JPEG图像文件dpi并计算物理尺寸
    感谢浙江省浦江中学方春林老师提供的问题、测试图像和第一版本的代码!下面的代码需要安装Python图像处理库pillow,由于不同公司对JPEG压缩算法和格式的实现不完全一样,有些类型的jpg文件暂时无法提取dpi信息,如果找到好的办法的话后期会再进行补充。fromosimportlistdirfromPILim......
  • Python中的枚举类型及其用法
    >>>fromenumimportEnum#导入模块中的类>>>classColor(Enum):#创建自定义枚举类red=1blue=2green=3>>>Color.red#访问枚举类的成员<Color.red:1>>>>type(Color.green)#查看枚举类成员的类型<enum'Color'>>&g......
  • 几行Python代码打造自己的磁盘垃圾文件清理器
    本文假设某些特定类型的文件和大小为0的文件为垃圾文件,可以自由扩展代码的列表,也就是垃圾文件的类型。fromos.pathimportisdir,join,splitextfromosimportremove,listdir,chmod,statimportsys#指定要删除的文件类型filetypes=['.tmp','.log','.obj','.txt']d......
  • Python+tkinter动态创建与销毁组件小案例
    本文代码演示了如何在tkinter窗体上动态创建组件以及销毁组件的方法。importtkinterimporttkinter.messageboximporttkinter.simpledialogbtnList=[]#动态创建组件,并计算组件在窗体上的位置defplace(n):foriinrange(n):exec('btn'+str(i)+'=tkinter.B......
  • Python代码调试之异常回溯
    当发生异常时,Python会回溯异常,给出大量的提示,可能会给程序员的定位和纠错带来一定的困难,这时可以使用sys模块的exc_info()函数来回溯最近一次异常。sys.exc_info()的返回值tuple是一个三元组(type, value, traceback),其中:type——异常的类型value——异常的信息或者参数tr......
  • Python+pandas读取Excel文件并统计演员参演电影数量
    Excel样本数据请参考Python读取Excel文件并统计演员参演电影>>>importpandasaspd>>>df=pd.read_excel('电影导演演员.xlsx')>>>df电影名称导演演员0电影1导演1演员1,演员2,演员3,演员41电影2导演2演员3,演员2,演员4,演......
  • python爬虫--爬取各大城市的各个区域的租房信息
    一、选题背景衣食住行是生活的基本需求。衣和食好解决,不喜欢的衣服可以买新的,不好吃的食物可以换一家吃。可是在住宿上,买房和租房的置换成本都相对较高,因此房源选择尤为慎重。作为目前买不起房的自然人,我们一般是通过中介来实现租房的需求比如自如,贝壳找房和链家。链家占据了租赁......
  • dubbo+spring+zookeeper的集成入门实例
    一、启动zookeeper我用的kafka自带的zookeeper任务管理器输入bin\windows\zookeeper-server-start.batconfig\zookeeper.properties开启zookeeperCtrl+c输入Y关闭服务 二、安装dubbo—admin管理控制台1、打开https://github.com/apache/dubbo-admin/tree/......